Take the 2-minute tour ×
I have a matrix
x = [0 0 0 1 1 0 5 0 7 0]
I need to remove all of the zeros such as
x=[1 1 5 7]
The matrices I am using are large (1x15000) I need to do this multiple times (5000+)
Efficiency is key!
share|improve this question
6 Answers 6
up vote 13 down vote accepted
One way:
x(x == 0) = [];
A note on timing:
As mentioned by woodchips, this method seems slow compared to the one used by KitsuneYMG. This has also been noted by Loren in one of her MathWorks blog posts. Since you mentioned having to do this thousands of times, you may notice a difference, in which case I would try x = x(x~=0); first.
WARNING: Beware if you are using non-integer numbers. If, for example, you have a very small number that you would like to consider close enough to zero so that it will be removed, the above code won't remove it. Only exact zeroes are removed. The following will help you also remove numbers "close enough" to zero:
tolerance = 0.0001; % Choose a threshold for "close enough to zero"
x(abs(x) <= tolerance) = [];
share|improve this answer
This fails on negative numbers Try abs(x)<= tolerance – KitsuneYMG Apr 10 '09 at 18:38
The x <= tolerance would exclude negative floating point numbers. You would probably need to expand the comparison to be x >= tolerance and x <= tolerance. The operator for logical and in matlab escapes me at this moment. – Bill Perkins Apr 10 '09 at 18:39
I corrected the answer to remove any value close enough to zero from either the negative or positive direction. – gnovice Apr 10 '09 at 18:40
Just to be different:
This has the bonus of working on complex numbers too
share|improve this answer
Those are the three common solutions. It helps to see the difference.
x = round(rand(1,15000));
y = x;
tic,y(y==0) = [];toc
Elapsed time is 0.004398 seconds.
y = x;
tic,y = y(y~=0);toc
Elapsed time is 0.001759 seconds.
y = x;
tic,y = y(find(y));toc
Elapsed time is 0.003579 seconds.
As you should see, the cheapest way is the direct logical index, selecting out the elements to be retained. The find is more expensive, since matlab finds those elements, returning a list of them, and then indexes into the vector.
share|improve this answer
Wow! Are those numbers right? I could have sworn that "y(y==0)=[];" and "y=y(y~=0);" were comparable to each other speed-wise. I'll have to check my numbers again. – gnovice Apr 10 '09 at 22:02
Never mind... I just found a blog post by Loren at the mathworks that addresses exactly this problem, and it seems to agree with your numbers. – gnovice Apr 10 '09 at 22:08
_USER_ Note that you can now use [~, ~, y] = find(y) which should give similar performance to the solution with logical indexing. – Dennis Jaheruddin Jul 23 '13 at 11:48
Here's another way
y = x(find(x))
I'll leave it to you to figure out the relative efficiency of the various approaches you try -- do write and let us all know.
share|improve this answer
Though my timing results are not conclusive to whether it is significantly faster, this seems to be the fastest and easiest approach:
y = nonzeros(y)
share|improve this answer
y = [0 2 0 1 1 2 5 2 7 0]
Then x2 and y2 can be obtained as:
x2=x(~(x==0 & y==0))
y2=y(~(x==0 & y==0))
x2 = [0 1 1 0 5 0 7]
y2 = [2 1 1 2 5 2 7]
Hope this helps!
share|improve this answer
Your Answer


text:
The point of this three piece prototype spinning aluminum impeller heatsink from Sandia National Labs is to get rid of boundary layers by exploiting a fairly obscure fluid dynamic effect first discussed in the 1950's, where by boundary layers are substantially thinned above the surface of accelerating bodies (ie. radial fins on a disk rapidly spinning). In this case, the aluminum cooling fins - the fan impeller - are spinning at 2000RPM. According to Sandia Labs, heat is transferred from the processor to the rotating cooling component above, across a very thin 'air bearing' - essentially a metal surface rotating a fraction of a millimeter over a similarly sized stationary surface.
Orientation Agnostic In the video below you'll see the air bearing heatsink sitting horizontally on a table, yet if you glance at your computer tower you'll know that CPU heatsinks mostly always operate while mounted to a vertical motherboard. The Sandia cooler is orientation agnostic - meaning the air bearing is not affected by gravity and will operate vertically, upside-down or at angle because a compression spring is used to hold the impeller and base together, not gravity.
The complete 48 pg PDF from Sandia National Laboratories researcher Jeff Koplow, titled; "A Fundamentally New Approach to Air-Cooled Heat Exchangers" is available here. The project report 'borrows' one of my photos from a Frostytech reviewwithout crediting it to Frostytech.com (pg.5, figure 1), but this technology is cool so I'll let it slide. ;) Update - received a nice apology regarding the unattributed image and all is good. :)

source: HuggingFaceFW/fineweb-edu


text:
Background: Diagnostic errors are the leading basis for malpractice claims in primary care, yet these errors are underidentified and understudied. Computerized methods used to screen for other types of errors (eg, medication related) have not been applied to diagnostic errors. Our objectives were to assess the feasibility of computerized screening to identify diagnostic errors in primary care and to categorize diagnostic breakdowns using a recently published taxonomy.
Methods: We used an algorithm to screen the electronic medical records of patients at a single hospital that is part of a closed health care system. A Structured Query Language-based program detected the presence of 1 of 2 mutually exclusive electronic screening criteria: screen 1, a primary care visit (index visit) followed by a hospitalization in the next 10 days; or screen 2, an index visit followed by 1 or more primary care, urgent care, or emergency department visits within 10 days. Two independent, blinded reviewers determined the presence or absence of diagnostic error through medical record review of visits with positive and negative screening results.
Results: Among screen 1 and 2 positive visits, 16.1% and 9.4%, respectively, were associated with a diagnostic error. The error rate was 4% in control cases that met neither screening criterion. The most common primary errors in the diagnostic process were failure or delay in eliciting information and misinterpretation or suboptimal weighing of critical pieces of data from the history and physical examination. The most common secondary errors were suboptimal weighing or prioritizing of diagnostic probabilities and failure to recognize urgency of illness or its complications.
Conclusions: Electronic screening has potential to identify records that may contain diagnostic errors in primary care, and its performance is comparable to screening tools for other types of errors. Future studies that validate these findings in other settings could provide improvement initiatives in this area.

source: openbmb/Ultra-FineWeb


text:
by Mr. Sundial
After you receive your sundial follow these instructions to install the sundial.
How to create an interactive painted sundial:
1) Order a Sundial, on the checkout page include your location as an address or GPS coordinates.
2) Our technology creates a specific template for your exact location on the earth, no two are alike.
3) A full-scale template is cut out of durable Coreplast, which is like corrugated cardboard, only plastic
4) We ship you the complete template. Follow the steps below to create the sundial by painting the sundial on your location.
5) You stand on the Sundial when its sunny, and your shadow will tell the time!
Step 1: Find the geographic coordinates of the location, then create a CAD drawing of the sundial.
Delete or modify, so people can understand they will receive the kit. Then they will follow these steps to install the sundial.
Step 2: Using precision tools cut the stencil to exact specifications.
Step 4: Align to true north.
How are people going to do this step? There are compass apps you can use on your phone. May the instructions can reference a popular app if people do not have this tool. What do you think?
Step 3. Lay the stencil out on the blacktop.
Step 4: Paint the sundial on the location.
Step 5: Tell time.


text: Fort Abraham Lincoln was built on the west bank of the Missouri River. Very nearby was the infantry post, Fort McKean. Fort Abraham Lincoln was commanded by Colonel George Armstrong Custer until his death in battle in June, 1876. Custer led important expeditions to support the Northern Pacific Railroad survey and to the Black Hills from Fort A. Lincoln. Fort Lincoln did not have a stockade fence around it. The original fort and buildings at Fort Abraham Lincoln were disassembled in 1894. A reconstruction of the Custer House was opened to the public in June 1989.


text: Trufield project aims to create an innovative electronic medical records system for people living in poor countries. In many developing countries, medical records are still kept on paper forms. Paper-based medical record keeping is slow, inefficient, time-consuming and simply inadequate to meet patient needs today. Trufield aims improve healthcare by creating an electronic medical records platform for everyone. Good medical record keeping is essential to assuring quality health care. Trufield aims to create a big data revolution to foster better healthcare using blockchain technology to solve real-world problems. The Trufield platform will have a patient-centered approach to storing medical data. This will enable patients to act appropriately when granted access to their own health records. Trufield decentralized application will improve the coordination and continuity of care, reduce errors in information transfer, provide decision-making support for health providers, boost staff accountability, improve legibility of clinical notes and achieve more accurate statistics.


text:
Duration: 2 Hours
Credits: 2 PDU's/CDU's
This two-hour webcast gets right to the point and covers the essential steps of a practical process for writing business use cases. It is all based on industry best practices and employs IAG's proven experience and techniques for practical requirements definition. This webinar will explain what Business Use Cases are and how to document them. Using the business case of an innovative iPhone application, the course will follow a simple seven-step process for writing Use Cases as well as provide strategies for dealing with the common challenges of defining them. Participants will learn use-case documentation and modeling techniques using standard templates, worksheets and checklists. It will provide Project Managers and Business Analysts with a clear understanding of what they need to know, and what they need to do, to easily identify and write the use cases they need for their next project.
1. Business Use Cases and Business Requirements
2. Use Cases, the Application Life Cycle, and the Project Management Process
3. The Components of a Use Case
4. The Different Forms of Use Cases
5. The Seven Steps to Writing a Business Use Case
6. Detailed Use Case Modeling
7. Tips for Eliciting Use Cases
8. Use Cases and Business Rules
9. Use Cases and User Stories in an Agile Approach
10. Next Steps – What do you do when you're done?


text:
This makes perfect sense in an evolutionary context but I think it also makes an amusing statement about the stereotypical gender perspectives of humans. These different gender perspectives are best exemplified by a joke which was the source for coining the term, Coolidge Effect.
… an old joke about Calvin Coolidge when he was President … The President and Mrs. Coolidge were being shown [separately] around an experimental government farm. When [Mrs. Coolidge] came to the chicken yard she noticed that a rooster was mating very frequently. She asked the attendant how often that happened and was told, "Dozens of times each day." Mrs. Coolidge said, "Tell that to the President when he comes by." Upon being told, President asked, "Same hen every time?" The reply was, "Oh, no, Mr. President, a different hen every time." President: "Tell that to Mrs. Coolidge."


Last modified on 29 November 2013, at 15:33
second person
second person (uncountable)
 1. In grammar, the form of a verb used when the subject of a sentence is the audience. In English, the second person is used with the pronouns thou and you. In many languages the singular, applying to one person, and plural, applying to several people, are distinct.
 "Are" is the second person of "to be"
 "hast" is the second person singular of the German verb "haben"
 "habt" is the second person plural of the German verb "haben"
 2. A form of narrative writing using verbs in the second person in order to give the impression that the action is happening to the reader.
Related termsEdit
See alsoEdit


Making Sounds and Music
Espruino isn't fast enough to play MP3 or WAV music files, but it can output beeps of different frequencies using its pulse width moduled outputs. In this tutorial we'll show you how to make sound using a speaker from an old PC.
You'll Need
Wiring Up
Connect the two wires of the speaker to the Espruino board - one wire to ground, and the other wire to a Signal Pin that is capable of PWM (you can get a list of pins that are capable by typing analogWrite()).
Note: This is probably really bad for your Espruino board. Ideally you'd add a transistor to amplify the signal - or at the very least you'd put a resistor in series to limit the current. Given the boards don't cost that much, we decided that it was worth taking a chance though.
First off, let's define the pin that our buzzer is on. On the F3 board I've used pin A9:
var BUZZER=A9;
Now, we can try using the PWM output to see what happens:
analogWrite(BUZZER, 0.5);
This should create a beep, but to control the frequency you need to supply an extra argument:
analogWrite(BUZZER, 0.5, { freq: 1000 } );
This will create a 1kHz beep. You can stop the beeping by setting the output to 0:
Next, we'll create a function that plays whatever frequency we give it. If we give it 0, it will stop the buzzing.
function freq(f) {
 if (f===0) digitalWrite(BUZZER,0);
 else analogWrite(BUZZER, 0.5, { freq: f } );
We can test it:
But now, we want to play some music! We'll need the following 2 websites:
The second website uses the letters a-g for lower pitch notes, and A-G for higher-pitch notes. We'll make a function which goes through a string of characters, one at a time, and plays the corresponding pitch note:
var pitches = {
function step() {
 var ch = tune[pos];
 if (ch!== undefined) pos++;
 if (ch in pitches) freq(pitches[ch]);
 else freq(0); // off
Now we just have to define the tune, and pos - which is the position in the tune:
var tune = "c c c d e e d e f g C C C g g g e e e c c c g f e d c";
var pos = 0;
And we can start playing the music:
setInterval(step, 100);
To restart the song, just type:
You can load another song:
var tune = "g e g g e g A A g f e d e f";
And if you want to restart the song when the button is pressed, just type:
setWatch("pos=0", BTN, true);


France Strikes Over Increasing Retirement Age: The Meta-Economics of Success
France is into its third or fourth day of striking over President Nicolas Sarkozy's bold plan to increase the retirement age from 60 to a whopping 62. Of course, striking in France is a national hobby, a way of getting outside and enjoying the sun. French strikes are dog-bites-man headlines.
The real story is why the citizenry is withholding their labor to protest that they should not have to labor and should instead be taken care of an extra two years of their life. Now, I am no expert in French economics and so cannot say whether retaining the 60-year retirement mark will be as disastrous for the State as Sarkozy says it will be. And perhaps French offices are such hellish places that the faster one can escape from them, the better. But just look at the following statistics.
Because higher education is largely paid for by taxing those who labor, the average French citizen does not enter the workforce until he is 22 to 25. That is, the care and feeding of the first 22 to 25 years of an average Frenchman's life are paid for by somebody other than himself; first his parent or parents, then working citizens. After he himself begins working, this homme moyen expects to cease laboring at age 60. The care and feeding for remaining years of his life, which will total roughly between 20 to even 30 or more years, will be funded by taxing those younger folks who still labor.
It is easy to see that since the average Frenchman will work from 35 to 38 years of his life, and will have others work for him from 42 to 55 years, that from 53% to 61% of the man's life will be supported by the labor of others. This crude estimate does not account for many factors, and it is only for a fictional "average man", but it is suggestive. More than half a life spent laying in the vines eating grapes grown by the labor of others!
The hidden part of the equation is that the care of the young and the aged, indolent men are not merely being supported by an increasingly small fraction of the population. They are also being supported by the labors of the dead. This phenomenon does not apply just to Frenchmen, but to all of us.
A mere century ago, and except for a trivial fraction of humanity—kings, queens, and the like—-no person could expect to have the majority of his life supported by others. Before, say, 1900, lives were shorter and filled with sweat from a man's first steps until his last. This included weekends! But from the year 2000, lives are longer and a man can now expect to spend a significant portion of his life in the pursuit of pleasure.
As said, this is only possible because those before us bequeathed us the knowledge and the tools to keep us well-fed, clothed, and housed. All evidence is that we appear to be doing the same for the generations that will come after us. That is, we are adding to the knowledge and tools which will allow our grandchildren to work even less of their lives than a modern Frenchman.
How long before we arrive at the point where food, clothing, and housing are so cheap the world over that no further effort need be made to procure them? A century? Two? Will life then become so easy that our base survival necessities are "free"? What happens to us then?
There are other things that drive us—hate, envy, lust, pride, a desire to best others—so it is likely that knowledge will increase. But by how much? When your dinners and entertainment are guaranteed, how much of the population will opt for a lackadaisical life? If labor isn't necessary, many won't bother.
But, humans being what they are, they will always find something to complain about. Given history, it is rational to assume that irritants which we now consider trivial, petty, and even non-existent will seem to our grandchildren gross outrages, just as French citizens scream like stuck cochons when asked to stick at it for a mere two more years. So it is likely that some innovation will continue.
That is, if our grandchildren bother to have grandchildren of their own. If you're so busy concentrating on where you'll find your next distraction, or "experience", you'll not spend much effort on procreating and bearing the burdens that activity implies.
It is the old question: how much success is too much?
Categories: Culture, Statistics
15 replies »
 1. It gets stranger. The young people are in the street demonstrating with the workers. The logic for some of them seems to be:
 1 – There is high unemployment for young people.
 2 – If workers retire two years later, they are taking jobs from young people.
 3 – Therefore people should retire earlier, not later.
 There is a silver lining though. At least the young people want to work.
 2. cb; not so sure the younger ones want to "work". They just want "jobs". Not the same thing, don't-cha-know. There is actually work out there but most of it is too far beneath their levels of self-image to be acceptable.
 3. Matt:
 I feel sorry for Sarkozy. He is trying to teach half the country that there is no such thing as a free lunch. It is far more difficult and far more dangerous than teaching statistics and algebra to unmotivated American college students. ALas you both have about the same chances for success.
 I hpe he succeeds because the unfunded "pension" bombs, particularly those in the public sector where the Unions can extort unrealistic terms, could take us all down.
 4. 49erDweet – I'm glad I didn't have a mouth full of coffee when I read your post. I don't know any French students but I sure wouldn't bet that you aren't right.
 5. Everybody wants to have a job. Once they have a job, they want less work, more vacation and early retirement. And of course ever increasing salaries.
 "The care and feeding for remaining years of his life, […], will be funded by taxing those younger folks who still labor."
 And not to forget that, in all fairness, they should also contribute to "the care and feeding of the first 22 to 25 years of an average Frenchmanâ€™s life" of the following generation.
 6. Matt,
 I actually think it's an interesting and rather complex problem if/when we are able to produce robots that can do labor that is today done by human workers.
 In Star Trek, people simply take to the stars and spend their energies on pursuing knowledge of the galaxy. I have a hard time believing that people are so driven.
 In any case, I don't find it unfortunate that we no longer have to work from sunup to sundown every day until we die. What I find unfortunate is that so many no longer take pride in working at all. Then again, it's likely that most people never did– they just did it because if they didn't they starved. Today, you just give up smokes and alcohol (in Germany.)
 7. I live in France; France has a post-War tradition that the worker must come first and so takes precedence over the client/customer whom he has learned to ignore, and is in a constant adversarial state with his employer whom he must dominate. Since nearly half of all in work, work for the State, this produces a continuous, dynamic tension.
 Labour laws have increasingly encouraged the French to believe they should work less and less – thus the 35 hour week and never on a Sunday. So entrenched is this that when Sarky relaxed the rules, he also had to "bribe" workers to work extra by making overtime income tax free. There have been few takers.
 The 35 hour week and early retirement was supposed to engineer a workforce deficit and out with the old in with the new situation which would oblige employers to hire more people, particularly the young, with the dual advantage of reducing unemployment and creating work opportunities for the young.
 It may have worked except high employer social security costs, coupled with it being almost impossible to fire anyone resulted in employers just managing with reduced workforces which means work gets delayed and everybody waits.
 It then dawned on the political wizards that older employees earn more and thus pay more tax than young ones starting out, so what with less work being done overall and more at the lower salary end, the overall tax take went down, but payouts went up because not only were the early retirement generation starting to retire, but those 25 year olds leaving education could find no jobs and so became clients of Sate hand outs.
 So to pay for it all direct taxation spirals up, but many cannot afford to live and pay the taxes, so there are a plethora of circumstances by which tax credits can be gained not least by having more children and of course costing the Sate more thereby, and the proportion of tax payers who actual make a net positive contribution to income tax goes down every year. In 2009 it was 43%.
 This is the true benefit of Social Democracy aka advance towards Communism via Socialism, which is now endemic in Europe and advanced in France.
 The shortfall is made up from indirect taxation which penalises low earners and thus triggers more State aid, increasing government debt.
 France takes over half the EU's Common Agricultural Policy budget which is a de facto welfare system for French farmers who live on poor, low yield land growing very little


Onna Bugeisha, the Japanese Female Warrior
Onna Bugeisha with a Katana and the traditional weapon used by them, the Naginata.
"An onna-bugeisha (女武芸者?) was a type of female warrior belonging to the Japanese upper class. Many wives, widows, daughters, and rebels answered the call of duty by engaging in battle, commonly alongside samurai men. They were members of the bushi (samurai) class in feudal Japan and were trained in the use of weapons to protect their household, family, and honour in times of war. They also represented a divergence from the traditional "housewife" role of the Japanese woman. They are sometimes referred to as female samurai, although this is an oversimplification. Significant icons such as Empress Jingu, Tomoe Gozen, Nakano Takeko, and Hōjō Masako are famous examples of onna bugeisha."
-Wikipedia _URL_
Photo from _URL_


R/Converting Geographic Coordinates to Kilometers
From QERM Wiki
(Difference between revisions)
Jump to: navigation, search
Eli (Talk | contribs)
(Converting Lat/Long to km)
Newer edit →
Revision as of 21:54, 17 October 2012
This is a little piece of code I always have to go look for in my computer for converting geographic coordinates to kilometers. It takes a vector of longitudes (Long) and latitudes (Lat) and returns a projection of those points (x.km and y.km) around their mean in kilometers.
 x0 <- mean(range(Long))
 y0 <- mean(range(Lat))
 rx <- 6371 * acos(sin(y0*pi/180)^2 + cos(y0*pi/180)^2 * cos((x0+.5)*pi/180 - (x0-.5)*pi/180))
 ry <- 6371 * acos(sin((y0-.5)*pi/180) * sin((y0+.5)*pi/180) + cos((y0-.5)*pi/180) * cos((y0+.5)*pi/180))
 x.km <-(Long-x0)*rx
 y.km <-(Lat-y0)*ry
Note that there are, probably, a dozen little functions that do this in different geographic packages on-line. This does a good enough job. The 6371 is the'mean' radius of the earth, which ranges from 6357 at the poles to 6378 at the equator. You could presumably make things more accurate by modeling the radius as a function of latitude, but are unlikely to improve your precision by more than (6378 - 6357)/6378 = 0.3%.
Personal tools


text:
Drink-walking: An examination of the related behaviour and attitudes of young people in Queensland
O'Connor, Erin L., Tay, Richard S., Watson, Barry C., Edmonston, Colin J., & Lang, Cathryne P. (2004) Drink-walking: An examination of the related behaviour and attitudes of young people in Queensland. In The NSW Local Government Road Safety Conference, September 2004.
This is the latest version of this eprint.
While huge inroads have been made into the drink driving problem in Queensland over the last decade, the prevalence of alcohol-related pedestrian crashes has been steadily increasing. Young people (17-29 years) are over-represented in this type of pedestrian crash. A study of 534 people, including 328 participants aged 17-24 years old, was conducted to examine the issue of drink-walking as part of a larger program of research examining youth and risk-taking behaviour. The study involved breath testing and surveying patrons as they left selected licensed premises. Survey items addressed past experiences of drink-walking behaviour, knowledge and perceptions of the dangers and legal consequences associated with both drinkwalking and drink driving, trip planning, and factors influencing the modal choice. Results revealed that young people are more likely to drink-walk and rated the likelihood of being hurt whilst drink-walking on or near roads as lower than participants over 24 years of age. However, 53% of under 25 years old recalled situations in which they or another person had been hurt whilst drink-walking. The implications of the findings for the design of educational campaigns and other interventions are discussed.
Citation countsare sourced monthly fromand citation databases.
These databases contain citations from different subsets of available publications and different time periods and thus the citation count from each is usually different. Some works are not in either database and no count is displayed. Scopus includes citations from articles published in 1996 onwards, and Web of Science generally from 1980 onwards.
Citations counts from theindexing service can be viewed at the linked Google Scholar™ search.
Full-text downloadsdisplays the total number of times this work's files (e.g., a PDF) have been downloaded from QUT ePrints as well as the number of downloads in the previous 365 days. The count includes downloads for all files if a work has more than one.
|Item Type:||Conference Paper|
|Keywords:||Drink walking, alcohol, pedestrian, exit surveys, Blood Alcohol Content|
|Subjects:||Australian and New Zealand Standard Research Classification > MEDICAL AND HEALTH SCIENCES (110000) > PUBLIC HEALTH AND HEALTH SERVICES (111700)|
|Divisions:||Current > Research Centres > Centre for Accident Research & Road Safety - Qld (CARRS-Q)|
Current > QUT Faculties and Divisions > Faculty of Health
Current > Institutes > Institute of Health and Biomedical Innovation
|Copyright Owner:||Copyright 2004 (The Authors)|
|Deposited On:||02 Sep 2008|
|Last Modified:||09 Jun 2010 22:47|
Available Versions of this Item
- Drink-walking: An examination of the related behaviour and attitudes of young people. (deposited 29 Jun 2007)
- Drink-walking: An examination of the related behaviour and attitudes of young people in Queensland. (deposited 02 Sep 2008)[Currently Displayed]
Repository Staff Only: item control page


Reducing Rain Pollution
Rain barrels are one way the Think About Personal Pollution (TAPP) program in Tallahassee works to improve water quality in northwest Florida. Program Director John Cox spoke with Water Quality Products Associate Editor Jeff Zagoudis to explain how these devices can turn a potent source of pollution into a boon for local consumers.
Jeff Zagoudis: How much of a problem is rainwater in Florida?
John Cox:
Rainwater is actually the biggest pollution source in Florida; we average about 66 in. of rainfall in Tallahassee every year. It takes all sorts of chemicals and waste and washes them into public water sources. This is why animal waste is a large part of the problem too—especially [from] dogs.
Zagoudis: What types of community outreach and education programs does TAPP provide?
Our program was designed to improve water quality, primarily nutrients and bacterial contamination, in the three regional lake basins that we have here in Tallahassee. We focus our efforts on getting people to reduce their personal pollution.
The television public service announcements (PSAs) we have produced have won a lot of awards—a lot of ADDY awards. We have also done two on pet waste and they have both won Emmy awards. We have produced quite a few outreach brochures on taking care of your yard, fertilization and picking up your pet waste, to name a few. The State Environmental Educational Task Force is a big help in distributing information for us across the state.
We have a lot of information on our website, including a series of videos that we run during the early spring/summer gardening season. All of these efforts are ongoing. You may not have as intense a program every year, but you cannot stop.
Zagoudis: What are some of the benefits of rain barrels for homeowners and the environment?
Obviously they reduce the amount of runoff that reaches various water supplies. An ordinary rain barrel can hold 50 to 60 gal of rainwater at a time, which comes to about 1,000 gal annually. Once it is there, it can be parceled out however people see fit.
Zagoudis: Can any large container be used as a rain barrel?
You could just put a large bucket under your roof, but the problem is it is open to the elements. If you leave it full of water for any length of time, you will attract bugs, especially mosquitoes, here in Florida. There is also the risk of leaves and other debris getting in the bucket, further contaminating the rainwater.
The earliest rain barrels were often repurposed containers, particularly old pickle barrels. The key is to have a screen on top to let the water in but keep everything else out. The more elaborate rain barrels actually have a lid, and you have to drill a hole in that and connect it directly to the downspout.
Zagoudis: Where can people get rain barrels? Can they make them at home?
You can get all the parts to make your own rain barrel from your local garden supply store. It will probably cost you about $50 to build one yourself. You can also buy them pre-made if you want. Every year, the city of Tallahassee hosts a rain barrel drive with a local company; their barrels run $55 to $60. For 2012, we are working with that same company to give people the ability to buy rain barrels online.
Zagoudis: What can excess rainwater be used for?
Probably the biggest single use would be for irrigation. The rainwater in Florida has a high nitrate content, so it can act as a natural fertilizer. The easiest way is to attach a hose to the barrel and water your plants or lawn that way. We have also had users set up microjet irrigation through a sprinkler system and a sump pump.
I would like to see people find a way to use it every time it fills up. If you just use it when it is dry, you won't use up as much of the storm water runoff. We can reverse the pollution damage a little bit at a time if we can just get people to help out.
John Cox is the program manager for the City of Tallahassee Storm Water Pollution Reduction Program, which includes TAPP. Cox can be reached at or _PHONE_. Jeff Zagoudis is associate editor for Water Quality Products. Zagoudis can be reached at or _PHONE_.
Leave A Comment
 - Lines and paragraphs break automatically.
More information about formatting options
By submitting this form, you accept the Mollom privacy policy.


text:
In order to make a clap switch, we have to combine the touch sensor(monostable mode of 555 and the transistorized dark sensor circuits. Whenever there is loud sound produced near the electret condenser mic, pin 2 of 555 gets triggered and it switches on the LED D1. The LED remains on for a definite time determined by R1 and C1. We can adjust the sensitivity of the circuit using a variable resistor in place of fixed resistor R5. You can check the circuit with 1K or 10K.
The schematic of clap switch:
You can see the steps for making clap switch on the video given below.
Please check the following video tutorial
If you want to glow a bulb operating at 220V, use the following schematic:
Before you make this project, read carefully about RELAYS: _URL_ If you are not confident at making circuits, don't work with 220V, it can be dangerous and harm you.


text:
Most of the victims are adult men, and when archaeologists find a mass execution of men they usually assume they are looking at war captives. There is not much evidence, though, that the Lambayeque people were warriors. Their sites are undefended, their art does not feature warfare, and weapons are not prominent in their tombs. This has led to some strange speculations about where these victims came from, like this one from Haagen Klaus of the University of Utah:
All the dead in the newfound pit were likely willing participants from local communities engaged in a ritual that celebrated death so that "new life could emerge in the world," Klaus said in an email to National Geographic News.
I think it is more likely that there was some warfare in the Sicán world, however little their culture emphasized it, and that these men were the victims of it. Since the site is in many ways unique (so far) it is very hard to know.


text:
Neurophathic Hydrocephalus is a lethal genetic defect that affects Angus and Angus-influenced cattle. Calves carrying two recessive genes—resulting from the mating of two carrier animals—are born dead with an extremely large cranium with little or no brain matter or spinal cord. A large%age of mortalities relating to NH occur through embryonic or fetal loss during gestation, which causes the defect to go misdiagnosed or unnoticed.
Dr. Jon Beever at the University of Illinois and Dr. David Steffen at the University of Nebraska-Lincoln, in collaboration with the American Angus Association, have identified the gene mutation responsible for NH and a commercial test has been developed and validated. The new diagnostic test is now available through Pfizer Animal Genetics.
Also, Pfizer Animal Genetics has been approved by the American Angus Association as an NH testing laboratory. Pfizer Animal Genetics has proactively worked to expand its testing capacity in order to provide results to producers in a timely manner. Samples are being tested in the order in which they are received at the new laboratory located in Kalamazoo, Michigan.


text:
17-2011.00 - Aerospace Engineers
Green occupations will likely change as a result of the green economy. Green economy activities and technologies are increasing the demand for occupations, shaping the work and worker requirements needed for occupational performance, or generating new and emerging occupations.
This is a Green Enhanced Skills occupation — green economy activities and technologies are likely to cause significant change to the work and worker requirements. New tasks, skills, knowledge, credentials may be needed. Employment demand remains the same, but there is potential for an increase.
Aerospace engineers work in the following green economy sectors:
- Research, Design, and Consulting Services — This sector encompasses "indirect jobs" to the green economy which includes activities such as energy consulting or research and other related business services.
- Transportation — This sector covers activities related to increasing efficiency and/or reducing environmental impact of various modes of transportation including trucking, mass transit, and freight rail.
They perform these tasks important to the green economy:
- Design new or modify existing aerospace systems to reduce polluting emissions, such as nitrogen oxide, carbon monoxide, or smoke emissions.
- Design or engineer filtration systems that reduce harmful emissions.
- Evaluate biofuel performance specifications to determine feasibility for aerospace applications.
- Plan or conduct experimental, environmental, operational, or stress tests on models or prototypes of aircraft or aerospace systems or equipment.
- Research new materials to determine quality or conformance to environmental standards.
- Review aerospace engineering designs to determine how to reduce negative environmental impacts.


text:
The glasses Jamie Kim uses in her research might look dorky, but they're designed to help you have more fun.
Kim, a researcher in the University of Florida's Department of Tourism, Recreation and Sport Management, uses high-tech eye-tracking glasses to determine what parts of an attraction capture visitors' attention. She's one of a handful of researchers worldwide pairing the glasses with a wristband that measures your emotional state. Together, the wearables reveal how what you're looking at makes you feel, which can help design better experiences in everything from theme parks to nature parks.
When you put on the glasses – which look a bit like the bygone Google Glass– eye-tracking technology shows researchers what you're looking at and how long it holds your interest. It's more than just a frame-mounted camera, which would only show where the glasses were pointed, not where your eyes were focusing (at the sign nearby, the horizon, or down at your phone, for instance). These glasses actually evaluate your eye movement to determine where you're focusing your gaze and attention. Meanwhile, the wristband measures emotional arousal by tracking the electric activity on your skin. When you see something that engages your interest, researchers can see corresponding peaks in readouts from the devices, which are sent wirelessly to their laptops as their study subjects move through the attraction. By combining this data with GPS tracking, the researchers can create a heat map showing what people found the most interesting, guiding the fine-tuning of that attraction and the design of future experiences.
Jamie Kim at Sweetwater Wetlands Park, where her research is helping design a better visitor experience.
"Where are visitors really intrigued? Where did they get bored?" Kim said. "When we analyze the data across multiple participants, we're able to answer those questions."
The data can even tease out details such as confusing signage: When participants spend too much time reading a sign, or their eyes keep wandering back to read it again, there's a good chance the message isn't coming through as intended, she said.
Kim and her colleagues have used the technique – which she calls iMotion – on trolley tours in St. Augustine and at Sweetwater Wetlands Park in Gainesville, where their work is shaping the planning of trails, viewpoints and interpretive signs. She's also using iMotion to evaluate responses to tourism ads.
"This has lots of potential to improve our knowledge of how to design tourism experiences," Kim said.


text:
And why is New Year's Day an official holiday in Massachusetts? Here's the Lowell connection from worcester.bettysgenealogy.org :
New Year's Day, however, was not an American holiday. It was for many years distinctively the French-Canadians' day. All the mills were open as usual but the French-Canadian help refused to work. This presented difficulties in maintaining operating crews and frequently resulted in trouble between management and employees. It was not until 1914 that New Year's Day became a legal holiday in Massachusetts. Urged by a demand made by French-Canadians throughout the state, Representative Henry Achin of Lowell obtained passage of the bill in that year. It was preceded by a hard fight having been before our state government for a number of years. Frank P. Allen (Ed. Note: A well known Franco-American resident of Fitchburg) was a member of the legislature in the year of its passage. So, when we celebrate New Year's Day, we should remember that our own Frank was instrumental in making the holiday possible.


text:
(Mimosa, Silk tree)
A large shrub or small tree, Albizia julibrissin is native to Iran to Japan. It is a fast-growing plant whose seedlings can become invasive. It can be seen growing in the wild in the southeastern U.S. and California in waste places, fields, and along roads.
However, its bipinnate, ferny leaves and fluffy pink flowerheads that cover the tree in summer make it a garden-worthy plant, as do the fragrance emitted by the flowers, which attract bees. Seed pods that resemble flat beans follow the flowers and persist into winter. Still, care should be used so that seeds from garden plants can't escape into the wild.


Data Format
 collapse = TRUE,
 comment = "#>"
Since Rankcluster 0.92, ranks have to be given to the functions in the ranking notation.
Ranking and ordering notation
The ranking representation $r=(r_1,...,r_m)$ contains the ranks assigned to the objects, and means that the $i$th object is in $r_i$th position.
The ordering representation $o=(o_1,...,o_m)$ means that object $o_i$ is in the $i$th position.
Let us consider the following example to illustrate both notations: a judge, which has to rank three holidays destinations according to its preferences, O1 = Countryside, O2 = Mountain and O3 = Sea, ranks first Sea (O3), second Countryside (O1), and last Mountain (O2).
The ordering result of the judge is o = (3, 1, 2) (the first object is O3, then O1 and O2) whereas the ranking result is r = (2, 3, 1) (O1 is in second position, O2 in third position and O3 in first position).
Rankcluster format
The \code{data} parameter must be a matrix with every row corresponding to a rank.
One row corresponds to one rank. The first column corresponds to the position on the object A, the second to the position of object B and so on.
For converting your data from ordering notation to ranking, you can use the convertRank function. This function works only for univariate and non-partially missing ranks.
Multivariate Ranks
For multivariate ranks, the differents variable are combined by column and an extra parameter (m) indicates the size of each dimension.
The big4 dataset is composed of the rankings (in ranking notation) of the "Big Four" English football teams (A: Manchester, B: Liverpool, C: Arsenal, D: Chelsea) to the English Championship (Premier League) and according to the UEFA coefficients (statistics used in Europe for ranking and seeding teams in international competitions), from 1993 to 2013.
Each variable corresponds to the ranking of four elements, so m = c(4, 4). In the data matrix, the first four columns correspond to the rankings in Premier League and the four next to the ranking accoding to the uefa coefficient.
Partial Missing Ranks
Rankcluster manages partial missing ranks. Missing positions are denoted by 0.
For example 5 0 1 2 0 indicates that the position of the second and fifth objects are unknown.
Ranks with tied positions
Rankcluster manages tied positions in ranks. Tied position are replaced by the lowest position they share.
For example, assume there are five objects to rank. If the output rank in ranking notation is 4 3 4 1 1, the 1 for both the objects number 4 and 5 indicates that either object 4 is in first position and object 5 in second or object 5 in second position and object 4 in first. Then the object number 2 is in third position, then objects 1 and 3 are in fourth and fifth or fifth and fourth.
Try the Rankcluster package in your browser
Rankcluster documentation built on Jan. 27, 2021, 9:07 a.m.


Power tool
 Whether it's a notepad in their glovebox, scratch paper on the dashboard or official IRM Redbook in their pocket, most cattle producers have some means of record-keeping nearby. But pen-and-paper may soon be replaced by high-tech tools for herd management that put the power of data in the palm of a producer's hands.
Years in the making, the PowerCalf Mobile App and web portal are now available to assist beef producers in recording and managing critical information, from calving records to feeding programs. Just like that little redbook, this information can be accessed anytime, anywhere, but MFA's PowerCalf app surpasses written records by putting that data to work in measuring and benchmarking herd performance with convenient, user-friendly technology unlike anything on the market.
The app was officially launched in August, but PowerCalf's beginnings go back to 2014, when MFA Director of Health Track Operations Mike John sought to create a program that would allow beef producers to take the information they collected and make it more useful. MFA would digitize, standardize and analyze that information to help producers make whole-herd management decisions. Then John and PowerCalf developers took that concept a step further. What if producers could input their own information as quickly as they could write it, chute-side and already standardized? Wouldn't that be valuable to their operations? What if they could run reports or sort by the animal's identification number? And what if they could do that from their phone, tablet or computer?
The development of the mobile app was driven by those goals, and MFA's information technology department has been building and refining the platform with the help of beta-testers across MFA's trade territory. Here's what a few of them had to say about this new power tool for their operation:
Tim Myers runs Blue Horn Ranch in Farmington, Mo. He and five employees have a lot to manage with 3,200 acres and 400 cows having roughly 374 calves a year.
"Whenever anyone on the ranch enters new data, it updates all of us," Myers said. "It's a very straightforward and easy process. None of us are very computer literate, but this app is just a touch screen, easy to use, common sense."
Myers began beta-testing the app in the fall of 2016 and has used it for three calving seasons. He recently received carcass information on the first set calves that went to market while he was using the app. The results were interesting. The difference between his top and bottom carcass was $552.
"If we have the ability to group cattle of like genetics and like size and sell in bigger numbers, the cow/calf operator has control of some of the market," Myers said. "If we can prove genetics and prove what they're going to do at the feedlot, it gives us the ability to demand more money and have more stability in our market. The only way you can do that is through data collection."
Likewise, tracking performance is also one of the main goals of app testers Alvin and Janet Braun who run approximately 200 head of cattle near Ste. Genevieve, Mo. The Brauns began renting and working the family farm in 2009 when Janet's father got sick. Since then, they've been retaining 20-30 heifers each year to build their herd.
 "Our record-keeping up until now has been a little pocket notebook that gets put in a drawer," Janet said. "This spring, we used the PowerCalf app to record birth and weaning weights, and I'm anxious to do that again in the fall. I want to accumulate that data and look at it in black-and-white to compare how our calves do in their individual herds and how they perform compared to each other."
For the past three years, the Brauns have sold calves straight off the farm, and they said with the PowerCalf app they will be able to provide more information for prospective buyers. Ultimately, they hope PowerCalf will help increase their profitability.
"The buyers are actually beginning to contact us," Alvin said. "It's a lot more beneficial to sell from here than to haul to an auction barn, and it puts more money in our pocket in the end. When we eventually start selling our heifers, we'll be able to easily access that animal's information and even be able to tell the buyers how their mothers and grandmothers performed."
University of Missouri Extension Livestock Specialist Kendra Graham sees many operations in the state, some with various methods of data collection and others without any at all. She and her family run Kollmeyer Family Farms in Farmington, Mo., and served as a PowerCalf beta-testers.
"I think any type of information-gathering and recordkeeping that we can have on the farm is beneficial," Graham said. "Identification is key to a lot of our production records, so if we can make it easier for producers to record that data, I think people are more inclined to collect that information."
Graham said once producers start recording some data, they're more likely to keep other key information.
"Whether it's feeding, feed-to-gain or even just weights," she said, "you can tell if your cattle are more or less productive."
Through the PowerCalf app, producers can document and verify health and genetics through the entire process. They can benchmark their herd against others in the state. They can track feed efficiency and reproductive rates. They can determine which cows are the most profitable and which ones are costing them money. Moreover, they can do all this through the app on their mobile device or the web portal and know their information is securely stored in the cloud.
"One of the most exciting things I see happening with PowerCalf is it's going to give MFA the ability to help our producers capture more value and be more economically viable," Stephen Daume, MFA livestock consultant, said. "With PowerCalf, I can now go out to a farm and help that customer look through his records—analyze his carcass weights, feed conversion, reproduction rates—and maybe even help him break his profitability down in terms of dollars of carcass weight per cow.
Ultimately, it's about MFA being able to help our producers capture more value out of the products they produce, which, in turn, adds value to what we do here at MFA."
PowerCalf not only has the potential to change producers' operations, but it may have the potential to change the beef industry as a whole, Daume said. Producers will now be able to tell which of their cows produce calves that grade well at the processor and meet consumer expectations of quality. The possibilities are endless.
"By capturing and digitizing all this data," he said, "we not only have the ability to document and verify parentage, but we can also make observations such as hair coat quality, fescue resistance or respiration rate during heat stress. We could maybe even identify lines and breeds of cattle that have specific resistance to disease, like bovine respiratory disease. The PowerCalf app is going to allow us to easily track those genetics, and we could assist with beef improvement not just here in Missouri or the United States, but perhaps even globally."
That's the power possible in the PowerCalf app. For more information, visit, the Apple store or Google Play. Hear more from these PowerCalf pioneers in this video at
 - Created on.
 - Hits: 2172
Lush pastures can equal lung problems for cattle
This time of year, it is possible to move cattle off mature, dormant warm-season pastures onto cool-season pastures, which are lush, high in protein, wet and rapidly growing. However, in this situation, acute bovine pulmonary edema (ABPE) might be a concern. ABPE is more common in the fall than in the spring. This form of pneumonia typically occurs when cows are fed an all-dry dormant stage of growth forage and then are turned out on high-protein, wet pastures. A typical scenario is a grazing change in the late summer or fall from dry pastures to lush forage regrowth following haying.
ABPE can be avoided by introducing cattle to cool-season pastures over time. For example, limit their access to a few hours for a couple of days, then allow them to graze for a couple of mornings before letting them run full time on the pasture. This is much less of an issue if the pasture is mixed with small grains.
However, grazing management—not the forage—dictates the prevalence of ABPE. Swathing a section of the grass and allowing it to wilt before the animals eat it reduces the incidence. Feeding an ionophore, something with Rumensin or Bovatec, also helps reduce the chances of ABPE and improves the diet's energy value. Consider feeding a couple pounds of MFA Full Throttle to balance the energy-to-protein ratio and add vitamins, minerals and an ionophore. Preventing ABPE is crucial because there is no effective treatment for affected animals.
Technically speaking, here's why it happens. The lush, rapidly growing pastures contain an amino acid called tryptophan—a normal component found in protein. Rumen bacteria metabolize the tryptophan, converting it into a compound called 3-methylindole. This compound, in turn, is converted into another toxin that creates edema in the lungs. This fluid interferes with the breathing process and exchange of oxygen and can lead to animal mortality.
Because of the way we feed dairy cows, ABPE usually only occurs in beef cattle. Clinical signs of ABPE usually occur one to 14 days after an abrupt change in pasture


text:
Yosemite National Park Announces the Public Comment Period for the Invasive Plant Management Plan Environmental Assessment
Invasive plants are one of the greatest threats to the integrity of National Park Service lands. Non-native plants invade an estimated 4,600 acres of federal land in the United States every day, and already infest millions of acres in the national parks. Fortunately, Yosemite National Park is at the early stages of invasion, with less than 1% of the landmass within the Park contaminated with invasive plants. Unfortunately, 177 non-native plant taxa have already established within Park borders, many with the potential to spread rapidly.
The purpose of this Invasive Plant Management Plan Environmental Assessment for Yosemite National Park is to evaluate a range of alternatives to prevent the establishment and spread of invasive plants into uninfested areas of the park, and quickly and effectively eradicate new infestations.
The public comment period for the Invasive Plant Management Plan Environmental Assessment will open on Friday, June 13, 2008 and will run through Sunday, July 13, 2008. The plan is available on the park's website at _URL_ A public meeting will take place on Wednesday, June 25, 2008 from 1:00 p.m. to 5:00 p.m. during the monthly Open House in the Yosemite Valley Visitor Center Auditorium. Additionally, park representatives will be available at the El Portal Planning Advisory Meeting on Tuesday, July 8, 2008 at 7pm in the Clark Community Hall.
Written scoping comments should be postmarked no later than July 13, 2008. Comments can be submitted at public meetings, by mail, fax, email, and through the Planning, Environment, and Public Comment (PEPC) commenting system. To request a hard copy or CD ROM version of the EA and to submit written comments:
Mail: Superintendent, Yosemite National Park
For more information on park planning efforts, visit the website at _URL_
Did You Know?
In Yosemite Valley, dropping over 594-foot Nevada Fall and then 317-foot Vernal Fall, the Merced River creates what is known as the "Giant Staircase." Such exemplary stair-step river morphology is characterized by a large variability in river movement and flow, from quiet pools to the dramatic drops of the waterfalls themselves.


text:
The Federal Trade Commission is making its own bid to protect gig workers against exploitation. The regulator has adopted a policy statement detailing how it will tackle gig workers' problems. The FTC plans to step in when there are misrepresentations about pay, costs, benefits and work terms. Officials also expect to intervene with "unfair or deceptive" algorithms, harsh contracts and anti-competitive behavior such as wage fixing and monopoly-creating mergers.
The Commission said the classification of workers wouldn't affect enforcement, so companies can't avoid repercussions by classifying people as contractors instead of employees. Violators may have to pay fines and change their practices, and the FTC could partner with other government bodies (such as the Justice Department and National Labor Relations Board) to address issues.
There are gaps. It could be difficult for the FTC to prove algorithm-driven abuse, for instance, and it's not clear which non-contractual "restraints" might hurt workers' freedom of movement. However, this could still serve as a warning to gig companies that might hide steep operating costs, fight unionization efforts or collude with rivals to keep wages low.
The FTC isn't alone in hoping to improve the lot of gig workers. A bipartisan measure in Congress, introduced to the House and Senate this February, is meant to provide portable benefits to gig workers. Last year, the Labor Department revoked a rule that made it harder to protect those workers' labor rights. States and cities have also filed lawsuits and otherwise taken efforts to bolster working conditions. However, the FTC's policy provides an extra, nationwide safeguard that might further discourage attempts to exploit the gig economy.


Wednesday, February 5, 2014
It's Cold Outside...Let's Keep the Bogey Going
During an oral history interview with 95-year-old Alice Mercer, originally of Bay Roberts, I asked her to share some memories from her school days. She talked about having to go outside in all kinds of weather to use the washroom, and how it was hard work for the teacher to keep the classroom warm.
"We had stoves in all the classrooms. Teachers had a time to try and learn us something and keep the bogey going. One of the boys would come with a handful of splits in the morning and the bucket of coal. Used to buy the coal from the coal shed. He'd light the fire and it was up to the teacher then to keep it going. sometimes the teacher would forget it and it would go out. Then we'd get cold."
Wait, "...keep the bogey going"? What's a bogey? From the context of the conversation I could see that with her use of the word bogey, she was referring to a stove for heating, but since I hadn't heard that word before, I checked the Dictionary of Newfoundland English, just to make sure. It states:
bogie n also bogey, bogy. PARTRIDGE bogy 4 'a stove for heating'; SND ~ 'cooking galley on a fishing boat (1916); DC Nfld (1916-). A small stove used originally on a fishing schooner; applied generally to any small coalor wood-burning stove.
This was the word that Alice and her family would have used for a wood stove when she was a child. But do people still use it? And are there regions of the province that it is more widely known?
(The above photographs of two variations of small stoves, or bogeys, were taken from the Geography Collection - Historical Photographs of Newfoundland and Labrador on MUN's Digital Archives Initiative.)
If you have an experience with this word and its uses, please feel free to drop me a line and let me know.
- Lisa
No comments:


text:
Looking for Miza: Teaching Resources
Language Arts & Social Studies Lessons (Gr 3-8)
Inspired by the book Looking for Miza, by Craig Hatkoff and his daughters Isabella and Juliana, the teaching resources below will take your students on a journey to Central Africa. On your trip, students will visit Virunga National Park to learn how to identify mountain gorillas and create action plans to raise awareness of the problems facing these endangered creatures.
As a class, watch video highlights from the Kids Gorilla Summit that aired on September 26, 2008. Students will learn from environmental experts, guest speakers, and other students as they discuss how they are actively working to make a difference with both the humanitarian and mountain gorilla crises in Africa.
Help teach your students about real world issues and how to help save our planet through the story of Miza.
Learn about other remarkable true stories about animals who have overcome adversity.
And don't forget to watch the Winter's Tail Virtual Field Trip Webcast.
Use these lesson plans and printables to teach your students about mountain gorillas, Africa, and how to raise awareness about endangered animals.
Find out more about the book Looking for Miza, as well as other books from the Turtle Pond Collection.
Warm up your students with a quick quiz that tests what they already know about mountain gorillas.


text:
The basic purpose of a cabling system is to connect cables from one point to the other and ensure smooth network connectivity. It was a piece of cake in the past because only one to two cables needed to be connected. This made people rely on traditional cabling systems, which randomly connect one point to the other. With time, the number of cable connections kept increasing, creating networking issues.
Traditional cabling systems do not pay much attention to infrastructure or ensuring simple installation. The same practice raises numerous issues in the long run and even hinders the performance of the network. The better alternative option is a structured cabling system which makes sure there is no hindrance in the infrastructure, and it is perfectly designed. Numerous aspects differentiate the two, but you should avoid the traditional cabling system because it is not too functional.
Keep scrolling down this article to explore and learn in detail why you should avoid traditional cabling systems and look for alternative options for better networking.
Top 6 Drawbacks of Traditional Cabling System
Traditional cabling system has been around since the time networking and connectivity was introduced. The network infrastructure was not too complicated in the past, due to which traditional cabling systems did not create any issues. However, the situation has changed drastically, and relying on the same old cabling system is nothing less than a grave mistake. Learning about its drawbacks can help you realize the situation better.
Here are some of the major drawbacks of traditional cabling systems, you should be aware of not to repeat the mistakes.
1. Messy and Disorganized Look
Traditional cabling system looks messy and disorganized, which is the basic drawback of investing in them. The cables might be of various colors to differentiate them from each other, but they are tangled enough to track their starting and ending point. The messy look raises questions on installation and makes management tricky. This is why more and more people hire structured cabling companies in Dubai and get well-organized and perfectly traceable installations.
2. Frequent Downtimes
One of the most common drawbacks of relying on traditional cabling systems is frequent downtimes. The tangled net of cables has a higher possibility of developing networking and connectivity issues. The close-knitted cables can get damaged or develop other issues, due to which connectivity will be halted. It will take a longer time to identify and fix the issue. Due to all of this, there will be more frequent and longer downtimes, and you will have to deal with them.
3. Less Adaptable To Growing Changes
Another crucial drawback of opting for a traditional cabling system is that it is less adaptable to the growing changes. With the passage of time, you might need to add more cables and connections to the existing network. It will be impossible with the traditional cabling system, as it is less adaptable. There will be limited, or even no, space for new connections, and you will have to replace the whole infrastructure. On the other hand, structured cabling is highly adaptable to growing changes which is the basic reason behind its popularity.
4. Higher Expenses
Another notable drawback of opting for a traditional cabling system is the higher expenses. Such a network is more susceptible to downtimes which will cause irreparable loss. The cables are also more susceptible to developing damage, and you might not be able to reuse them. You will have to invest in new cables after short spans, which will increase expenses. Moreover, the network will develop issues more frequently, needing you to spend on expert help to get it sorted.
5. Poor Troubleshooting
One of the most critical drawbacks of relying on a traditional cabling system is poor troubleshooting. There can be an issue in cable connectivity, and it is important to identify and fix it. However, finding the damaged or poorly functioning cable in the tangled net will be too difficult. You might damage more cables trying to troubleshoot existing issues. So, you should never invest in a traditional cabling system but prioritize structured cabling, which is smooth to handle.
6. More Time for Installation
The last and most crucial drawback of a traditional cabling system is that it takes more time for installation. You might think random installation would be easier and less time-consuming, but it is not. Ensuring the functioning of tangled and messy cables is necessary and will consume more time. On the other hand, planning the cable infrastructure and installing it will be smooth. You can hire structured cabling companies in Dubai to handle design and installation if you are not an expert in the field.
Are you struggling with a traditional cabling system?
If yes, it is never too late to give up on it and opt for structured cabling. Do not rely on your limited expertise; get in touch with professionals to design the infrastructure and install everything perfectly to help you enjoy robust connections.
Read also : Smart Nursery for Your Newborn


Do Fish Shed Their Scales?
There are instances where fish do shed their scales but they do not shed them as part of normal growth. If they lost their scales as they grew they would not continue to grow.
The scales would have to be repaired or replaced for the fish to grow. Fish scales mimic the qualities of a human's skin. The scales of a fish will grow as they get older.
The number of scales has is directly proportional to what its age is. The scales are just like the rings of a tree. The scales help to determine their age
Why Does a Fish Shed its Scales?
1. Physical Damage
 - Breeding Season: As they are swimming around trying to mate with the females both species are very active. They will brush up against many objects as they are swimming erratically so this can result in physical damage, which is generally lost scales.
 - Aggressive Behavior of Other Fish: Sometimes the other fish in the aquarium can become aggressive and try to harm the other fish by constantly hitting them. Generally, the fish that was attacked is the one that will lose scales.
 - Decorations: It is okay to add caves and other decorations inside your aquarium but make sure that they do not have any sharp parts.
If you do have aggressive fish in your aquarium it is advisable that you keep them together in one aquarium to help protect the gentler, docile fish from being hurt and losing scales.
fish tail 1
2. Infection
Having an infection will also cause your fish to shed their scales and is the second common reason for a fish to shed scales. There are so many different infections that it is too long of a list to name them.
SEE NEXT: Baby Snapping Turtle Care Guide - Diet & Tank
3. Abrasions
A fish can get an abrasion by coming into contact with hard objects. It is nothing for them to brush up against something as they swim around the aquarium, especially during the breeding season. To help prevent this from happening, be sure that you do not put anything in the aquarium that has a rough surface or a sharp edge.
Scale Shedding Disease
This disease is called infectious protrusion and among aquamarine fish, this is a prevalent disease. It is caused by dangerous bacteria like Aeromonas punctuate and Pseudomonas fluorescens. It this disease is not treated, it becomes fatal.
These bacteria can be found in nature and is brought into the aquarium from natural reservoirs. When the fish that is infected in placed in an aquarium with healthy fish, the disease will spread if the infected fish is not quarantined first.
This disease can get into your aquarium via water, plants, or gravel from an infected aquarium. Another way it can spread is through transmission from equipment used in the infected aquarium.
The main symptoms of this disease is scale rising and scale shedding. In the beginning, the fish will look healthy but you may see some protruding scales. As the disease gets worse, more scales will start to stick up all over the fish's body.
This is because of the formation of the small pustules or bubbles that are full of serous fluid. They form in the places under the skin where the scales are attached to the fish's body. As a result, this leads to scales being shed or lost.
SEE NEXT: Top 5 Bottom Dweller / Bottom Feeder Fish
Because they shed scales, form pustules, and have scales protruding, these young fish will have difficulty breathing. The reason is that they use dermal respiration during that stage of their life instead of using their gill apparatus for exchanging gases. Unfortunately, these two specific symptoms do not always hint towards scale shedding disease.
Sometimes the protruding scales can be caused by bacteria called Mycobacteriosis or Ichthyosporidium. In order to be sure exactly what is causing a fish's scales to shed, you will need to examine the tissue that surrounds it and the scales.
fish scale
This disease can only be treated if it is caught in the early stages. This is when the scales start to stick up in patches. Some of the things that can be used include:
 - Antibiotics: These can include Sulfanilamide, Bicillim-5, and Biomycin
 - Basic Violet K: This can be made to treat fish in separate aquariums.
If a fish shows extensive protrusion of their scales, they are beyond being cured so they should not be kept any longer. They should be disposed of and everything, including the equipment, fishing tackle, and aquarium needs to be disinfected.
To clean and disinfect them, you should use five percent Hydrochloric acid or Sulphuric Acid. You can also use a Chloramine solution. To disinfect the gravel you need to temper or boil it. You should use Bicillin-5 solution to treat any of the plants.
Can a Fish Grow Back Their Scales?
Even if your fish loses a large number of its scales, it is possible that they can normally grow them back but it all depends on the breed of fish. The time for them to grow back will vary according to the species. Some can grow them back in a few weeks while others it may take three to four months.
SEE NEXT: Rasbora Hets & Espei Rasboras - Care Guide
It also depends on why they shed their scales in the first place. For example, if it was due to aggressive fish and you have moved the aggressive fish to another aquarium then they should grow back. The same way if it was due to something sharp in the aquarium and it was removed, their scales would grow back or repair themselves.
If the fish are healthy and it was not an infection causing them to shed scales, then they should grow them back or repair them.
 - It is a misconception that fish shed their scales as they grow. If nothing bad happens to a fish they will never shed their scales
 - If the fish have shed a lot of scales they will probably not grow them back, or at least the majority of them.
 - With scale shedding disease, if it is caught in time the fish will recover.
Leave a Comment


If you are getting bored and want to get rid of the monotonous routine of yours then we have something really wonderful for you. You can simply annoy your friends asking them stupid and funny questions through texting or while they are around you. You can also check other reads about asking funny stuff to people such as:
Let's staying on the point, you would love to do it as in the company of friends you don't have to be so concerned about formalities nor you would have a fear that in result you may have to listen a big boring lecture on manners and ethics. So, its purely a Chill program! You and your friends will have a light-hearted conversation.
Some Hilarious Questions to Ask your Friends
 1. If God helps those who help themselves then why it is said help others?
Since childhood we are taught that God helps those who help themselves, that means ultimately you have to paddle your own canoe for making the things work as only then you should seek for God' help. That's very true, but just for the sake of fun pose this question to your friends and ask if it is so then why it is said help others, why others can't help themselves?
We should help others here our concern is just to play fun and check how witty your friends are at it.
 1. How many ears one is supposed to have for being 'All ears'?
For showing rapt attention it is said 'I am all ears', we all have two ears so in this regard why do we say I am all ears, shouldn't it be like I am two ears or I am both ears? Ask it out and see what reply you get from your buddies.
 1. Why this term is used widely 'You know' especially when are not yet done completing the whole utterance?
Before we actually start talking about a certain point we often rater frequently use the term 'you know' whereas we haven't yet done completing the whole talk, logically its nonsense isn't? why don't you ask your friend about this?
 1. Can you adopt a monkey expecting it to be evolved in a man one day?
It is an old doctrine that says that we humans were apes and monkeys and then we evolved periodically into humans, so pose this question to your friend and ask if he can adopt a monkey expecting it to be evolved into a human one day!
Recommended: cute and funny monkey pictures with captions
 1. Why a square-shaped ring for boxers is called Rings?
A place where wrestler punch and bang up with each other is called, the point to be noted here is that Ring is of square-shaped. Tickle your friend by asking him this naughty question.
 1. if you were recreated then in what form you would like to be human or animal/bird?
It's a great fun to answer such questions, people usually reply that they would like to be what they are now if they were born again. Rest depends on your friend, if he isn't much happy with his life, people have dumped him then he would rather prefer to be a crow so he could shit on all those who tormented him in his previous life.
 1. Is a liar eligible to call a liar when he admits he lies?
Another tricky question coming you way, if you happen to meet a person who lies but at the same time he admits deliberately that he speaks lie then would you call him a liar who is telling a truth?
 1. Is nose really be a culprit as because of it two eyes can never see each other?
Do you think too that its because of nose that our eyes can never see each other? Take the opinion of your friend over this. It is said distance makes the heart grow fonder! That could be a reply, besides that if the eyes are dying to see each other why they look in mirror, simple!
Also Check: Nose Shape telling truth about your Personality
 1. Why people wake you up asking you 'Are you sleeping?'
Oh, that is so widely common, no matter in which region and nook of the world you are residing you would agree that we all do this, we see that a person is sleeping then we wake him up and ask him 'Are you sleeping'? how silly isn't it? Now ask you friend and see what does he has to say in this connection.
 1. Why a Waiter is called a 'waiter'? It's we who has to wait for a meal to serve?
Whenever you visit a restaurant, a waiter comes to take your order, you place the order and then you wait, that's what happens then why it is a waiter that is called a waiter, isn't it you who should be called out as a waiter? Ask your friend to opine!
 1. If driving is not allowed while being drunk then how all the drunk persons come back to home from bars?
dont drink and drive tickletick23 - 30+ Stupid and Funny Questions to Ask friends to Annoy them
This is really thought-provoking, first you are told that drunk cant drive, or you can say that drunk isn't allowed to drive then how come all the drunk persons come back to their come from bars? If you know the answer then please do tell me too I would please to know.
 1. Say something really serious in a funny way
It means go against the expression, wow worth-trying that promises to be a real fun. Such imagine someone is telling this smilingly and laughingly 'today my boss insulted me badly'. How possibly he could add an element of fun it that's the real deal. You can also check our funny ways to answer their phone calls.
 1. Tell about the funniest thing ever happened with you?
Now this can amuse the whole group of your friends, ask one of your friend to jog his memory and share a humorous incident happened with him, enjoy the flash back with your friends.
 1. Is there any person whom you can't help laughing at?
Sometimes it happens that we can't help laughing at someone, its not because the other person makes us laugh or he does some clownish tricks, its just we can't help it without any specific reason. Ask your friend if he has also that someone in his surroundings.
 1. What would you prefer to be? ugly and intelligent or beautiful and stupid?
Sounds interesting! Take the opinion and see what do you get in replies, how your friend would rather to be? Will he prefer looks on intelligent or he wants look with a dumb mind and no talents?
 1. Did you ever feel ashamed of yourself? If yes then why?
That takes a real courage to share such moment of your life in which you felt ashamed of yourself. So pull out such ticklish truths from your friends mouth and enjoy!
 1. Would you rather choose to be a clown or a cowboy?
Obviously, a cow-boy is the better option, the aggressive looks of cow-boy look damn impressive. But that's my choice may be your friends would rather choose to be a clown.
 1. Assume that you are left in a deserted island what three things you would need for your survival?
Inquire your best buddy what three things he would demand in order to survive in a deserted island. His mobile battery is gone dead, now what he needs to have?
 1. Would you rather have an Aladdin's lamp or extra ordinary talents and skills?
That's the test of your friend's intelligence now, whether he is the one who just dosses down and seeks for an Aladdin's lamp nor he wants extra-ordinary talents and skills. When there are so much skills you have who would need an Aladdin's lamp when without that you could do wonders.
 1. Would you rather have beautiful spouse with dumb sense of humor or a sharp sense of humor with average looks?
It is seen and observed that it's a sense of humor that people find immensely attractive, every one has his own preferences and choices, to some appearance and looks matter a lot and to some it's the wit that stands out-class, get to know your friend's thoughts about this.
 1. Did any prank of yours go wrong?
Sometimes some how when you play a prank with someone it goes wrong and that sometimes leaves you in an awkward situation. Did it happen with your friend?
 1. If you were to laugh louder during a meeting in your office? In result of doing this dare you can get a hefty reward, will you accept it?
Imagine what kind of serious ambience tends to be in office meetings and during that ambience if someone broke the ice by a loud laughter what will be the reaction of the rest? Ask your friend if he could accept the offer.
 1. Why people say 'what the hell are you talking about', when they know what actually are you talking about?
When you say something that is not liked by the listener then you get in return 'what the hell are you talking about' despite knowing the fact that listener knows very well what are you talking but still he asks, why? Ask your friend and see what does he has in his mind regarding this.
Also check these Problems with Neighbours which you can totally relate.
 1. Would you rather dye your hair in multi-color or shave them off completely?
Imagine your friend in multi-color hair, what would he look? A son of a rainbow I guess, or he would choose to be bald-headed, get to know about his will!
 1. Would you rather have six set of fingers in both hands or six toes?
Yuck! Anyways have to tell you so you can take the over dose


text:
Definitions of brittle:
- noun: caramelized sugar cooled in thin sheets
- adjective: (of metal or glass) not annealed and consequently easily cracked or fractured
- adjective: lacking warmth and generosity of spirit
Example: "A brittle and calculating woman"
- adjective: having little elasticity; hence easily cracked or fractured or snapped
Example: "Brittle bones"
- name: A surname (very rare: popularity rank in the U.S.: #27934)
Search for brittle at other dictionaries: OneLook, Answers.com, Merriam-Webster
"Works flawlessly!": RhymeZone apps for iPhone/iPad and Android!
Help, Feedback, Customize, Android app, iPhone/iPad app
Copyright © 2013 Datamuse


text:
path-, patho-, -path-, -pathia, -pathic, -pathology, -pathetic, -pathize, -pathy
(Greek: feeling, sensation, perception; suffering, disease, or disorder; a system of treating diseases)
In medicine, some of these elements usually mean "someone who suffers from a disease of, or one who treats a disease"; so, they should not be confused with the words that mean "feeling" which are also shown on these pages even though both meanings come from the same Greek element.
2. Any disease of the vocal organs affecting speech.
3. Any disease or disorder of phonation.
2. The influence of light upon organisms.
3. Any abnormal change in the skin induced by light.
2. A central retina burn from excessive exposure to sunlight or other intense light (e.g. the flash of an electrical short).
3. Thermal damage to the retina because of intense light.
2. Involving a pathological modification of normal function.
2. The science dealing with the disturbances of bodily function resulting from disease.
2. The pathology of diseases caused by plant parasites.


text:
(a) Severance pay accrues on a day-to-day basis following the recipient's separation from Federal employment. If severance pay begins in the middle of a pay period, 1 day of severance pay accrues for each workday or applicable holiday left in the pay period at the same rate at which basic pay would have accrued if the recipient were still employed. Thereafter, accrual is based on days from Monday through Friday, with each day worth one-fifth of 1 week's severance pay. Accrual ceases when the severance pay entitlement is suspended or terminated, as provided in §§ 550.710 and 550.711. If severance pay is suspended during a nonqualifying time-limited appointment as provided in § 550.710, accrual will resume following separation from that appointment.
(b) Severance payments must be made at the same pay period intervals that salary payments would be made if the recipient were still employed. The amount of the severance payment is computed using the recipient's rate of basic pay in effect immediately before separation, with credit for each day of severance pay accrual during the pay period corresponding to the payment date. A severance payment is subject to appropriate deductions for income and Social Security taxes. Severance payments are the responsibility of the agency employing the recipient at the time of the involuntary separation that triggered the current entitlement to severance pay.
(c) When an individual receives severance pay as the result of an involuntary separation from a qualifying time-limited appointment, the severance payment is based on the rate of basic pay received at the time of that separation. Severance payments are the responsibility of the agency that employed the individual under the qualifying time-limited appointment.
(d) When an individual is in a nonpay status immediately before separation, the amount of the severance payment is determined using the basic pay that he or she would have received if he or she had been in a pay status at the time of separation.
(e) When an individual's severance pay fund is computed under § 550.707(b) using an average rate of basic pay, that average rate is used to determine the amount of the severance payment. Exception: In the case of a seasonal employee, the agency may choose instead to use the employee's rate of basic pay at separation (as computed based on the employee's work schedule during the established seasonal work period) and then authorize severance payments only during that seasonal work period.
(f) In the case of individuals who become employed by a nonappropriated fund instrumentality of the Department of Defense or the Coast Guard under the conditions described in 5 U.S.C. 5595(h)(4), payment of severance pay may be suspended consistent with the rules in 5 U.S.C. 5595(h) and any supplemental regulations issued by the Department of Defense.
(g) Notwithstanding paragraph (b) of this section, an agency may pay severance pay in a single lump sum if expressly authorized by law.


Take the 2-minute tour ×
Possible Duplicate:
Is it "5-6 weeks are a lot of time" or "5-6 weeks is a lot of time"?
I am writing about a baseball player who has 33 at-bats in his career.
Which is correct:
Yes, 33 career at-bats qualifies/qualify as a small sample size.
My guess is that it should be qualify because at-bats is the subject, but it sounds odd.
share|improve this question
marked as duplicate by FumbleFingers, JeffSahol, simchona, kiamlaluno, Daniel Jun 27 '12 at 23:02
The subject is 33 career at-bats - which is plural, so qualify is the correct verb form. But people will often use singular qualifies in a context like this, where that number of "at-bats" is alternatively described as (singular) "a small sample size". – FumbleFingers Jun 18 '12 at 17:20
A similar question: 5 weeks is vs 5 weeks are – J.R. Jun 18 '12 at 17:24
2 Answers 2
The argument could be made that there's an implicit 'having' in the sentence:
Yes, [having] 33 career at-bats qualifies as a small sample size.
If you buy this argument, then the implicit 'having' is the gerund subject, and the verb for this gerund subject should be in singular form.
share|improve this answer
qualifies. the noun is "33 career at-bats" which is singular.
If the subject were "33 at-bats in one's career," it would be "qualify"
share|improve this answer


More LaTeX and Beamer Tips
1. Platform-independent specification of paths
% Windows Mac or Linux
2. Spacier Lists
3. Code listings
4. Emacs-RefTeX Table of Contents
 (setq reftex-section-levels
Top 5 Beamer Tips
Here are my top 5 tips for using Beamer, the popular LaTeX package for producing slides.
1. Navigation Symbols
I've seen hundreds of talks with slides prepared in Beamer. I've yet to see anyone use the navigation symbols that Beamer puts at the bottom right-hand corner of the screen. These should be turned off with
\setbeamertemplate{navigation symbols}{}
2. Extra Slides
If you include extra slides at the end of your talk, you can stop them affecting the page count (usually shown in the footer) as follows:
\begin{frame}{First Extra slide}
The appendixnumberbeamer package might not be included in your LaTeX distribution, in which case you can download it from CTAN.
3. References
You can include references in your slides using the following code, best placed after \appendix:
4. Sections
In a longer talk it can be useful to break the talk into sections and produce an outline slide at the start of each section. This can be done by putting in the preamble the code
and then typing \section[short_title]{long_title} between frames, where short_title is used for the headline (the line at the top of the screen that can contain various types of information, intended to help the audience know where you are in the talk). In this code I have increased the size of the font used for the outline and made it bold. If you don't want the headline it can be turned off with
5. Columns
A good way to line up graphics side by side, especially if they are of different heights, is with Beamer's columns environment:
\begin{columns}[c] % Columns centered vertically.
\column{5.5cm} % Adjust column width to taste.
\includegraphics...
\includegraphics...


we can hand-optimize the algorithm by performing the construction of the permutation step-wise and interleaving the primality checks appropriately. In our example, this is not really hard and the list monad is a great help, but it feels low-level, error-prone and lacks modularity. We would like the declarativity of the first approach while retaining the speed improvements the lazy checking provides.
So, should we to switch to another language? An obvious candidate is curry _TAG_ 12, a lazily evaluated hybrid functional-logic language with a very Haskell-like syntax and feel. Curry allows nondeterministic functions to be written by simply declaring the function multiple times; however, the nondeterminacy cannot be expressed on the type level. Using monadic reflection, we can do something very similar as follows.
#!syntax haskell
-- nondeterministic choice
(?) :: DeepSeq a => Monadic [] a -> Monadic [] a -> Monadic [] a
x? y = reflect (reify x 'mplus' reify y)
-- nondeterministically select a permutation
permute :: [Int] -> Monadic [] [Int]
permute [] = []
permute xs = y: permute ys where
 y::Int; ys::[Int]
 (y,ys) = select xs
select :: [Int] -> Monadic [] (Int,[Int])
select [] = reflect []
select (x:xs) = (x,xs)? second (x:) (select xs) where
 -- a special case of Control.Arrow.second
 second f (x,y) = (x,f y)
Now we only need to ensure that the computation fails when the permutation does not have the desired property.
#!syntax haskell
solve :: Int -> Monadic [] [Int]
solve n = if goodPerm xs then xs else reflect [] where
 xs :: [Int]
 xs = permute $ map (2^) [0..n-1]
* Main> reify (solve 17)
The relative performance of the different approaches is not surprising: The manual Haskell solution (GHC) is the fastest, the Curry solution (Muenster Curry) is about six times slower while the solution using monadic reflection is another four times slower (and gets slightly worse for larger values of
), since a lot of recomputation is implied by the way
are implemented. Finally, the naÔve solution would probably take
years to finish.
1.7 Further Ideas
This section discusses some further directions in which the ideas of this article might be extended.
1.7.1 Denotational Semantics
The relationship between laziness and direct-style continuation effects, despite often following the intuition, needs some further clarification. For that purpose, I wrote two interpreters of a simple untyped combinator language, which use a continuation-like monad and the monadic reflection library, respectively. They can be checked for coincidence using !QuickCheck tests generating type-checking expressions for the language. The monad
the interpreter is built upon is an
monad augmented with continuations of answer type
using the
#!syntax haskell
newtype Eval s a
 = Eval { runEval :: ContT Int (ST s) a }
 deriving (Functor, Monad)
The interpreter maps the source language's expressions into the following universal type.
#!syntax haskell
type U s = Eval s (Ref s 'Either' U' s)
data U' s
 = Int { runInt :: Int }
 | Fun { runFun :: U s -> U s }
 | List { runList :: Maybe (U s, U s) }
newtype Ref s = Ref { unRef :: STRef s (U' s 'Either' U s) }
So an
U s
is either a reference or a value of type
U' s
; references either point to a thunk of type
U s
or to an evaluated value of type
U' s
. Laziness is provided by two functions of the following types.
#!syntax haskell
-- Delays a computation
delay :: U s -> U s
-- Force evaluation of a reference to a normal form.
force :: U s -> Eval s (U' s)
Details can be found in the [attachment:Reflection.tar.gz tarball] provided with this article. The distribution also contains two interpreters for a strict version of the language, which can be more straightforwardly implemented using the plain continuation monad and, in case of the direct-style interpreter, some strictness annotations.
1.7.2 A Lightweight Notation for Monads
Haskell's do-notation is often criticized being too verbose, especially for commutative monads; and the process of transforming pure functions into monadic style because some (possibly deeply nested) function needs some effects is tedious and error-prone.
GHC already has special support for the (commutative) reader monad, through implicit parameters. This special rÙle of the reader monad might be justified by additional properties this monad has, for example that there are
isomorphisms of type
m (a -> b) -> a -> m b
m (a, b) -> (m a, m b)
whose inverses are given by
\f x -> f 'ap' return x
liftM2 (,)
, respectively.
Also, special tools _TAG_ 13 are being developed that automatically transform a function from direct into monadic style, but this process requires arbitrary decisions where to apply effects, e.g. it is unclear if
a function of type
Int -> Bool
should be monadified to a function of type
Monad m => m Int -> m Bool
Monad m => Int -> m Bool
, as
both make sense in different circumstances.
As we showed in this article, Haskell's type system is almost ready to express these differences on the type level; the only remaining problem is that forall-hoisting [6] changes the meaning of expressions. On the other hand, because of the interaction with laziness, keeping the semantics of the library described in this article would result in a rather complicated translation, as we saw in the last section. In order to get rid of this obscurity, one might imagine a type-directed translation which translates (pseudo-code)
#!syntax haskell
reflect :: m a -> ( => a)
reify :: Monad m => ( => a) -> m a
foo :: <[]> => Int
foo = reflect [0,2] + reflect [0,1]
bar :: [Int]
bar = reify foo
more strictly into
#!syntax haskell
foo :: [Int]
foo = (+) 'fmap' [0,2] 'ap' [0,1]
bar :: [Int]
bar = foo
However, this contradicts Haskell's philosophy to make invocation of effects as explicit as possible, and would probably be considered an "underkill". Moreover, it would require a decent solution to the monomorphism restriction problem.
1.8 Conclusion
Do not take this too seriously: Our code heavily relies on unsafe and experimental features; time and space usage are increased by the suboptimal encoding of continuations and the recomputations; and the number of supported
monads is limited by the
However, we provided a framework with strong static guarantees in which it is
easy to experiment with the unfamiliar
and we learned that GHC Haskell's type system goes well beyond Hindley-Milner and it is almost ready for an impure language where effects are declared explicitly on the type level.
More importantly, it is great fun to abuse just about every unsafe feature of (GHC) Haskell, to create an impure sublanguage with monadic effects.
1.9 Acknowledgments
I would like to thank the GHC team for this great compiler with its many fascinating extensions.
I also want to thank Peter Eriksen, Cale Gibbard and Don Stewart for proof-reading the article and their valuable suggestions, as well as Brandon Moore and Autrijus Tang for their advice on the references.
1.10 References
Anchor(ref1) [1] Olivier Danvy and Andrzej Filinski. "A Functional Abstraction of Typed Contexts". DIKU. DIKU Rapport 89/12. July 1989. Available online:
Anchor(ref2) [2] Chung-chieh Shan. "Shift to Control". 2004 Scheme Workshop. September 2004. Available online:
Anchor(ref3) [3] R. Kent Dybvig, Simon Peyton-Jones, and Amr Sabry. "A Monadic Framework for Subcontinuations". February 2005. Available online:
Anchor(ref4) [4] Andrzej Filinski. Representing monads. In Conference Record of POPL '94: 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Portland, Oregon, pages 446--457. Available online:
Anchor(ref5) [5] Philip Wadler. "The essence of functional programming". Invited talk, 19'th Symposium on Principles of Programming Languages, ACM Press. January 1992. Available online:
Anchor(ref6) [6] The GHC Team. "The Glorious Glasgow Haskell Compilation System User's Guide, Version 6.4". BR Linear Implicit Parameters: BR Implicit Parameters: BR Forall-Hoisting:
Anchor(ref7) [7] Koen Claessen and John Hughes. "!QuickCheck: An Automatic Testing Tool for Haskell".
Anchor(ref8) [8] Simon Peyton Jones. "Tackling the awkward squad: monadic input/output, concurrency, exceptions