text:
'Hostile' Letter Keeps Harrington Away From Plum Island
By Victor Tine, The Eagle-Tribune, North Andover, Mass.
Jun. 20–PLUM ISLAND — Although he was listed as a participant, Salisbury Town Manager Neil Harrington purposely stayed away from a meeting Tuesday on beach erosion issues organized by state Sen. Bruce Tarr and the Plum Island Foundation.
The reason for his absence, Harrington wrote in an e-mail to Plum Island Foundation Vice President Robert Connors last week, was that Connors and a "citizens' group" sent the town a letter last March threatening a lawsuit if the town did not agree to allow sand dredged from the Merrimack River channel to be deposited exclusively at Plum Island.
"We simply cannot grant legitimacy to a meeting organized by a group that ostensibly wants our support at the same time it is threatening to take legal action against us," Harrington wrote to Connors last Friday.
Harrington informed Connors in the e-mail that "the town of Salisbury will not be participating in the June 17 meeting." However, on a list of participants, he was listed anyway.
Connors responded to Harrington's e-mail message a few hours later.
"I will inform Sen. (Bruce) Tarr that you will be unable to attend the upcoming event he has organized with the Army Corps of Engineers," Connors wrote.
"Wouldn't the citizens of Salisbury be better served having their town manager attend to learn firsthand of the necessary steps, the possible solutions of erosion control and beach nourishment?" he added.
He did not remove Harrington's name from the list of participants that was released to the public.
"Mr. Connors has his own agenda," Harrington said when asked about Connors' e-mailed question. "He's interested in getting sand only for Plum Island, and we stand in opposition to that."
Salisbury selectmen Chairman Jerry Klima did attend the session, but he said it was primarily to provide information to Army Corps of Engineers coastal experts who were touring the beaches at Plum Island and Salisbury.
"It seemed appropriate to be cooperative with the Corps of Engineers," Klima said yesterday.
Salisbury and Plum Island had previously agreed to alternate the deposit of dredged sand per each dredging. Sand from the next dredging — whenever it occurs — would go to the island. Sand from the dredging after that would go to Salisbury Beach.
That the island will receive the next load of sand was itself a concession by Harrington because the last dredging deposited sand off Plum Island, albeit nearly 10 years ago. Harrington agreed to that concession "recognizing the need for immediate relief for Plum Island," he wrote.
The letter threatening legal action if that agreement were implemented was written by Boston attorney Robert Brennan. It was also sent to the state attorney general's office, the Department of Environmental Protection, the state environmental affairs secretary, Newburyport Mayor John Moak, the Newbury Board of Selectmen and the Army Corps of Engineers.
"(Salisbury) believes that the only reasonable answer to the question of how to deal with the never-ending problem of storm damage on our respective shorelines is to (a) work together toward a long-term regional solution and (b) engage our elected and appointed officials at the local, state and federal level to work on our collective behalf for the benefit of all of our citizens," Harrington wrote in his e-mail to Connors. "This can only be achieved if private citizens who wish to involve themselves in this process agree to work cooperatively with these officials. Sending hostile letters is not, in my opinion, a productive approach to finding a timely and doable solution to this serious problem."
The meeting was intended to give a panel of Army Corps of Engineers coastal experts an opportunity to assess the beach erosion problem on Plum Island and Salisbury Beach and answer questions from local and state officials.
Klima said his presence at the session should not be construed as an endorsement of the Plum Island Foundation. He said he thought the communities could probably persuade federal officials to give their financial support to beach nourishment projects — but only if they work together.
Connors yesterday declined comment on Harrington's statements or his absence from the meeting.
To see more of The Eagle-Tribune or to subscribe to the newspaper, go to http://www.eagletribune.com/.
Copyright (c) 2008, The Eagle-Tribune, North Andover, Mass.
Distributed by McClatchy-Tribune Information Services.
For reprints, email email@example.com, call 800-374-7985 or 847-635-6550, send a fax to 847-635-6968, or write to The Permissions Group Inc., 1247 Milwaukee Ave., Suite 303, Glenview, IL 60025, USA.


text:
Kuchela was a childhood friend of Lord Krishna. They had studied together under Sage Sandeepani. Kuchela was extremely poor, but he did not complain, because he did not attach importance to wealth, said Akkarakkani Srinidhi, in a discourse. But Kuchela's wife Susheela wanted him to seek help from someone to ameliorate their poverty. Kuchela did not know to whom he should turn for help. His wife Susheela asked him why he should not seek the help of Krishna, his friend, who was now the King of Dwaraka. Kuchela then decided to take his wife's advice. But he did not want to go and meet Krishna, without offering Him something. He was poor and could hardly make both ends meet. Besides, even assuming he was not poor, what could he offer a King? Anyway, he decided he would take some rice flakes, which was all he could offer to Krishna.
Krishna, despite being a king, had not forgotten Kuchela, and welcomed him heartily. Kuchela was so moved by his meeting with Krishna, that he forgot to ask Him for help relating to his material position. Krishna wanted to know what Kuchela had brought for Him and when He found that Kuchela had brought him some rice flakes, He ate a handful happily. Before He could eat some more, His consort Rukmini, held Him back, and told Him that He had had enough. Overjoyed by spending time in the company of Krishna, Kuchela departed for home. Only then he realised that he had not asked Krishna for help. When he reached his house, he saw in the place of his former humble abode, a mansion. He saw his wife clad in fine clothes, and realised that even without his asking, Krishna had blessed him. In fact, Rukmini had stopped Krishna from eating more of the rice flakes, because, had Krishna eaten more, He would have showered Kuchela with even more wealth, and too much of anything is undesirable.
The Lord is always anxious to help those who are devoted to Him. This is seen again in the case of Draupadi. He has helped Draupadi in many ways, and yet when His avatara is about to end, He is sorry that He has not done enough for her! Thus His thoughts even while departing from earth, are about His devotees.
Keywords: Krishna-Kuchela, Hinduism

subset: commoncrawl


text:
Our Members Say
- violette_ca
- Reviews: 101
Grand Xcaret by Occidental-All Inclusive: Flamenco Xcaret
Very nice resort, clean and safe. All meals are great, buffet and restaurants. The show every night is nice. The best restaurant to take breakfast is El Pescador with the ocean view. There is a private beach. I love the swiming pool bar to take my margarita y cerveza. :-)
The salt water swiming pool is great, gardens, stores and the view on the ocean from the restaurant.
- MrCockles
- Reviews: 3
Grand Xcaret by Occidental-All Inclusive: Top Class Resort merged into natural surroundings
This is a truly first class resort. We arrived just as the evening was beginning. The hotel lobby is truly breath taking, what looks like a fairly normal reception area, (allbeit with a giant thatched roof) suddenly drops away to reveal a deeply romantic natural setting. Tehere was a huge fish pond, with well relaxed guests feeding them with popcorn whilst tasting one of the many flavours of margherita before dinner. After the porters had dealt with our luggage with no fuss and a welcoming smile we were sent off to find our room. We walked out and across a gangplank lit up with lanterns in what seems to be an authentic Mexican Jungle. However it suddenly stops and the resort opens up in front of you. A very well presented resort. The rooms are more than adequate, cleaned everyday and the fridge stocked up and free of course as with everything else. Food and service is exceptional. They really will do anything for you, just ask. Don't forget to visit the park next door, it's breathtaking the amount of wildlife around, not just inside enclosures but outside awell. A few even roam around the resort. Careful if you are snorkelling in the bay, Pelicans just divebomb next to you to fill that huge mouth with fish. A great sight! The beach is small but perfectly formed. You can see the lights of Cozumel out to see at night.Our favourite place to lounge was the main pool by the Entertainment village. We got in a hammock and began to notice the only thing we had to think about in the world was who was going to stand up and order the next cocktail. I've never seen my girlfriend so relaxed ever. It really was a magical experience. The location is great, you feel away from it all, but if you want more lively entertainment you can visit Playa Del Carmen a great Mexican town, which has plenty going on all the time. There's a great Diesel shop, the shopping really is great, take an extra suitcase. It's also near enough to Cancun for a proper night out Ibiza style.
The Eco Park next to the resort. You have your own special entrance to the park, so no queues. The chance to swim with Turtles, Dolphins. The huge abundance of wildlife is vast. Explore the reef just out to sea. The entertainment is very good. Everynight there is the equivalent of a West End show, Mexico style, the Dancers come from all over the world and it's a high quality display. The bars are really very good here and you are looked after so well. I think however the most outstanding feature is just how beautifully designed the park is. It just seems so smart but is somehow sculpted into the environment. There are even some authentic ancient ruins on site.
- MJH_canada
- Reviews: 3
Occidental Grand Flamenco Xcaret: Riviera Maya nice spot
march 2003, we staded 2 weeks.
the hotel is really beautiful.
we tried many restaurants and they were all very good. It is very important to book you restaurants as soon as you get to the hotel.
you can also eat at some restaurant that dont require any reservation: pizzeria and tacos & fajitas (they are really good).
the bathrooms near the beach are REALLY clean.
You get a free entry for the Xcaret Park. The park is just beside the hotel and you have a private entry for the hotel clients. You can come back to the resort to eat and go back to the resort afterwards.
Dont go to the park on sunday because there is no show that night. Dont miss the show, it is really good.
- supermediania
- Reviews: 114
Occidental Grand Flamenco Xcaret: All Inclusive Resort
We were on Grand Flamenco Xcaret on 2003, it is a Huge All inclusive Resort, it is in the middle of the jungle next to Xcaret Park.
The buffet food was great, it also has 5 restaurant but you must make a reservation before. Make it the first day because you only can go to a one restaurant one time.
The worst part of the hotel is the smell it has at night when they pull of dark water.
It doesn't has beach, the one is a small artificially made one. It has 7 beautiful swiming pool instead
The property consists of 796 rooms:
661 superior rooms (334 in the Flamenco Building; 124 in the Cangrejo Building; 203 in the Pueblo del R?o)
63 Junior (59 Suites in the Flamenco building and 4 Double Beds in the Flamenco Buildings)
The Royal Club consists of 45 rooms, of which 12 are Master Suites (12 Junior King Bed) connecting with 12 Standard (Double Bed) and 21 are Junior Suites (King Bed)
All rooms are equipped with:
Air conditioning
Bath with shower and hair dryer
Safety deposit box
Satellite TV
Telephones with Data Port for internet connection
Minibar: with water, beer and sodas replenished once during your stay
Ironin board
Sort by: Most recent | Most helpful
- 1
Sponsored Listings
Instant Answers: Xcaret
Get an instant answer from local experts and frequent travelers


text:
When you have "Jon M. Huntsman" as part of your name, ethical leadership better be one of your core values. Jon Huntsman's name has long been synonymous with integrity and honesty, and our intention has been to see that legacy honored in the lives of our students.
Ethical leadership is more than just a catch phrase here at the Huntsman School of Business. Our students come to us with deeply held values, and we have a strong commitment to reinforce those values so that our students are prepared to lead lives of meaning in their professions and their communities. This desire is so ingrained in our culture that Dr. Stephen R. Covey wanted to join our school. Dr. Covey, a best-selling author and sought-after speaker, became the Jon M. Huntsman Professor of Leadership in February of 2010.
In the classroom Huntsman students are exposed to examples of ethical dilemmas through the use of cutting-edge case analysis. Outside of the classroom, our students gain meaningful leadership experiences through participation in 19 different student clubs and access to regular visits from business and civic leaders.
After graduating with his bachelor's, Davis Smith and his wife decided to take an unpaid internship in Peru. While in Cusco, they met many locals who played barefoot in the city center. One in particular named Edgar, insisted on shining Davis's tennis shoes with his shoe shining kit to earn some...
By Professor Scott Hammond The latest educational giveaway coming from the Obama administration is a one-size-fits-all solution that will hurt higher education and reduce student opportunity.
Businessman and philanthropist Bob Gay visited the Huntsman School on November 13, and delivered an incredible talk about business, conscience, and service.


text:
22 Perfect Maps Of Places That Don't Actually Exist
Imagine the impossible. Via r/imaginarymaps.
1. The Disunited States Of America.
2. The Disunited States Of America (if Manifest Destiny had never caught on).
3. The 124 States of America (if all secession movements in U.S. history had succeeded).
andrewshears.com / Via reddit.com
4. British North America (if the American Revolution had never happened).
5. The Hypothetical US High Speed Rail Map.
Alfred Twu / Creative Commons / Via reddit.com
6. If only landlocked countries existed.
7. If Antarctica had forests instead of ice.
8. If George Orwell's 1984 had come to pass.
9. If D-Day had never happened.
10. If Carthage had won the Punic Wars.
11. The Palestine Archipelago.
12. British Isles, 2100.
The9988 / Via reddit.com
13. Elements of the World.
Matthew Attard / Via reddit.com
14. Europe (alternative history version).
Rasmus Kongshøj / Via reddit.com
15. Europe over Tolkien's Middle Earth.
16. And over the USA, attempting to accurately visualize the journeys of Bilbo and Frodo Baggins in The Hobbit and the Lord of the Rings.
17. Gotham City.
18. H.P. Lovecraft's Dreamlands.
Jason Thompson / Via reddit.com
19. Jurassic Park.
20. Star Wars Known Universe.
21. Underground Game of Thrones.
22. Redditlandia.
Preview Your Response


text:
Home > News > Nation
Tuesday January 14, 2014 MYT 9:57:00 AM
Wednesday January 15, 2014 MYT 4:01:42 PM
by victoria brown
Panelists at the forum - Freedom of Religions in Malaysia
Panelists made up of NGO representatives shared their thoughts on freedom of religions in Malaysia during a forum titled "Freedom of Religions in Malaysia: We Live in Peace and Harmony" jointly organised by the Islamic Renaissance Front, Pusat Komas and Community Action Network Monday night.
In light of the recent ruling by the Penang government that non-Muslims in the state cannot use 40 "Islamic words", including "Allah", Council of Churches Malaysia secretary-general Reverend Hermen Shastri said that one religion cannot claim exclusive rights to words that aren't exclusive to Islam.
"No other country, where bibles are written in other languages, faces this problem," he said.
"We have to work for peace and harmony and the dignity of all human beings, not just for our own community.
"It has to be an interfaith movement. It has to represent all people in Malaysia," he added.
Dr Ahmad Farouk Musa, chairman of the Islamic Renaissance Front, believes that Malaysians are being "terrorised" into silence.
"There are mobs trying to break up peaceful conferences. There are bibles being torched. But nobody is saying anything.
"I am very upset and sad with the current situation. Our friends decided to remain silent and not say anything," he said.
Dr Ahmad Farouk believes that if Malaysians want to achieve harmony, there must be political will from both divides.
"We are either brothers in faith, or equals in humanity. We have to stand together against any form of injustice, whether it be injustice to the Muslims or non-Muslims," said Dr Ahmad Farouk.
Thasleem Mohamed Ibrahim, chairperson for Jihad for Justice, echoes the sentiment of national unity and harmony, saying that the country should follow in the footsteps of Pakistan.
"Although Pakistan's population is 90% Muslim, they recently celebrated 150 years of the Bible Society," said Thasleem.
Thasleem also said that the issue should not be handled with anger and violence.
"I had the opportunity to meet the Dalai Lama, and I parted with this bit of wisdom: Love and respect all.
"A lot of people are being terrorised here in Malaysia, and we can only take it away by a show of love."
Reverend Father Clarence Devadass, chairman of Archdiocese Pastoral Institute, fondly recalls growing up and playing with his neighbours of different religions.
"Where have all these happy times gone? Where is the respect and harmony. We should learn to respect one another and live together peacefully despite religious differences," he said.
"There is a great mistrust and suspicion among politicians. Christians are painted to be evil with a great master plan to try and convert people. But I haven't seen this plan.
"The road to respect and harmony must begin with mutual trust. People like you and I must begin to build friendships with one another. We are all Malaysians and we are all one."
He said the goal of national unity and harmony is one that is shared by several Malaysians.
"The late Yasmin Ahmad advertisements and movies portray this aspiration of all Malaysians.
"Just go to the stadium or warong and watch a live badminton match, you'll truly see 1Malaysia.
"So let's leave aside the politics and learn how to make friends with one another. We may take a long time to achieve this unity, but we have to start somewhere. If not we, who? If not now, when?
"The solution to our religious division will not be found through our politicians. We are the solution," he said.
"We can't rely on institutions. We have to be the voice. You and I can make the change. If we can live together, love each other, move on with one another, we can be the change."
Tags / Keywords:
Religion, forum, NGOs, Malaysia
MCA takes DAP to task for failing to stop PAS' hudud agenda
500 expected at forum on native rights
NGOs call for halt to GST on disability aids
Perlis mufti: Forced, rough sexual intercourse in marriage prohibited
Leaders call for people-centred Asean
Body of child found buried in kitchen
Hadi: Choose the path of PAS or go DAP's way
No festivity as ex-model Persana checks into Hospital Bahagia
Zahid Hamidi states Malaysia's anti-terror fight at UN
Padang Besar Hospital project given green light
Have a 'whale' of a good time in Queensland
Chelsea beat Thai All-stars 1-0 in first tour game
Road to adventure
Energetic treat for Starwalkers
Copyright © 1995-2015 Star Media Group Berhad (ROC 10894D)(Formerly known as Star Publications (Malaysia) Berhad)


text:
Haz clic aquí para ver perfil de Isabel en Español
Isabel is a visual artist from Argentina, trained in painting, drawing and printmaking. In New York City, she completed a fellowship in mural-making at the National Academy of Fine Arts and worked for two years as a teaching artist in the public school system. She also taught visual arts at a community arts center in India. As an educator, Isabel emphasizes the value of learning from one another.
She enjoys the contemplative silent aspect of painting, drawing and photography and is inspired by her students, the magic and energy of live music and group collaboration. In her abstract painting, she concentrates on obstacles such as old walls and ancient markings, in order to find solutions to them.
Last year Isabel began using her painting, sculpture and photography talents to enrich FUNDENOR's education and outreach, and this coming year will continue to seek ways to incorporate Mayan culture into her work with 48 Cantones and Ecologic Development Fund.
"The creative process heals and empowers by making us more aware of how we are feeling, thinking and behaving and connecting us to each other. Personally, art helps me stay focused in my life and keeps me on the right path: learning, discovering, producing and sharing."
Help Our Creative Work Take Root and Blossom!Donate >>
ArtCorps News
ArtCorps Creative Facilitators Isabel Carrió and Adriana Guzman started off the new year in Belize with a custom-designed course for...
Artist Blog
Pedro Batz Chuc is a kindergarten teacher at Chuicaxtun School who has been enthusiastically participating in ArtCorps training activities...
Read More >>


text:
THE FACE on VENUS
- Uploaded by Technothanks on Feb 17, 2010
- Hits: 139
NASA and OTHERS have chosen to COLOR their Venus photos with a RED haze, just like they used to do with MARS.
Now the Martian Haze is YELLOW, so VENUS gets stuck with the RED...
Anyway...SEE the FACE? Probably MACHINERY, just like the FACE on MARS!


text:
Do you know how sometimes, when you're not distracted by a dozen other things, you notice something that has been right in front of you for a while? I had this happen to me after my run last Sunday.
I was enjoying my shower – not just taking a shower but revelling in the water hitting my tired muscles – when I also noticed that I was dirty. Now, you think, we shower because we are dirty. But I don't think we always do; I think we shower because we are accustomed to doing so at regular intervals, much as we eat at appointed times.
I'd run 18 kilometers and was sweaty. My face was gritty with dried sweat and my hair was wet with not-yet-dry sweat. And noticing these things made me think. Much of my life is routine but when I exercise, I need to be cleaned. And, as my body signalled since it had my attention, when I exercise I get hungry. Not bored, so I'll eat. Or look at the time, I should eat. I get hungry because my body needs the fuel to repair my muscles and continue my activities.
I've spent the last week trying to pay more attention to my body's commentary on exercise. I've been reminded of how my sore muscles feel better when they're used gently and not when they're rested completely. This seems counter intuitive to my brain but my body is the expert.
And, in the midst of a busy, barely-have-time-to-use-the-bathroom week, my body has reminded me that sitting on my chair all day makes me more tired than getting up and moving around or, gasp, going to the gym. My body seems to know and notice a lot.
On Friday, I read a tweet from @saucony that read, "You can feel sore tomorrow, or you can feel sorry tomorrow. You choose." I know what my body would choose.
What does your body tell you about exercise?
Moving it
We're at my favourite part of the Running Room half-marathon training program: running 16 kilometres and more on Sundays gives me lots of time to warm up and then appreciate the strength of my body. I mentioned a waist-loss challenge last time. That's not been going well (or at all) but my newest Prevention magazine has a "Shrink your waist" exercise and diet plan that I'm going to try.
Tale of the scale
It's a bad idea to eat hamburgers and chips on the night before you weigh in. I'm up 3 pounds from Friday, when I was at the same weight as two weeks ago. I kept myself out of restaurants at lunch time – a major challenge for me – over the last couple of weeks. I thought an intuitive eating plan would work for a bit as it did in January but I had no real success. I need more structure, obviously, at least for a while.


text:
News from WTOP
News from the AP
Mike Causey
Shows & Panels
Shows & Panels
- Agency of the Month
- Business of Government Hour
- The CFO Agenda: Delivering value from financial transparency and audit efforts in the public and private sector
- Cloud-Driven Data Insights in Government
- CXO Surveys
- Disaster Resilience for America
- Federal News Countdown
- Government Perspectives on Mobility and the Cloud
- Reducing Risk in the Cloud
- Reimagining the Next Generation of Government
Shows & Panels
- AFCEA Answers
- American Readiness: Renewable Power and Efficiency Technologies
- Ask the CIO
- The Business Case for Cloud Computing in Government
- Cloud-Driven Data Insights in Government
- Connecting the Dots: Digital Authentication in Government
- Cybersecurity Game Changer: Real-Time Event Processing in Government
- Data-Centric Approaches to Government in the Cloud
- Delivering the Digital Government Mission
- Federal Executive Forum
- Federal News Radio's National Cyber Security Awareness Month Special Panel Discussion
- Federal Tech Talk
- The Future of Government Data Centers
- Government Perspectives on Mobility and the Cloud
- Industrialized, Interoperable and Insight-driven Federal Health Panel
- Innovation and Tech Superiority through Acquisition Reform
- Mitigating Insider Threats in Virtual & Cloud Environments
- Moving Agency Applications to the Cloud with PaaS
- Reducing Risk in the Cloud
- Security in the Age of Targeted Attacks
- Air Traffic Management Transformation Report
- The Business of Cloud
- Cloud First Report
- Data Driven Cloud Series
- Disaster Resilience for America
- General Dynamics IT Enterprise Center
- Gov Cloud Minute
- Government in Technology Series
- Homeland Security Cybersecurity Market Report
- The Intersection: Where Technology Meets Transformation
- Modern Mission Critical Series
- National Cybersecurity Awareness Month
- The New IP for Federal IT
- The Social Platform Solution for the Department of Veterans Affairs
- Technology Insights
- The Cyber Security Report
- The Next Generation Cyber Security Experts
Shows & Panels
- Cloud-Driven Data Insights in Government
- Disaster Resilience for America
- F-35 Lightning II Program
- Government Perspectives on Mobility and the Cloud
- On DoD
- Pentagon Solutions
- Reducing Risk in the Cloud
- Reimagining the Next Generation of Government
- Transforming Business Operations at the Defense Department
Pending threats: Separating the sharks from the minnows
Friday - 7/11/2014, 3:30pm EDT
Thanks to the upcoming mid-term election, even the most anti-bureaucrat politicians have mostly suspended their whack-a-fed game until next year.
We will (should) hear a lot more about VA bonuses and paperwork problems. And maybe more about what happened to potentially incriminating IRS emails that disappeared in the ether.
Was that a computer glitch, or a 2014 version of the mysterious gaps in the so-called Nixon tapes?
But for the most part, efforts to reform (or fold, staple and mutilate) federal pay, pensions and investment options are largely on hold.
Even with the summer lull and the autumn elections, there are still dozens of bills on Capitol Hill getting varying degrees of attention and, in some rare cases, even action. Limited action.
The bills range from everything to combat tax parity for feds in hostile situations, to scaling back future cost of living adjustments for retirees, to replacing the Federal Employee Health Benefits Program by putting workers and retirees under the Affordable Care Act.
Others would change the default option in the Thrift Savings Plan. At present, new hires who are automatically enrolled in the TSP have their government contribution directed to the Treasury G-fund unless they pick another option. The proposal would make the L-fund, lifecycle, the default option.
Several of the pending bills are definitely in the long-shot category. That includes a proposal to give white collar federal workers a 3.3 percent raise in January, rather than the 1 percent proposed by the White House. Not likely to go anywhere.
The other when-pigs-fly bill would repay all federal workers who were furloughed last year. In addition to being a very, looooooooooooong shot, it would mean that any fed who got unemployment benefits during the furlough would have to repay the money.
The one proposal most feared by many pro-fed lobbyists is the plan to base future retiree COLAs on the so-called "chained CPI". Backers—which includes the Obama administraton—say it provides a more realistic picture of what retirees do when prices for certain items go up — they buy less expensive items. Opponents say the steak-to-chicken-to-hamburger scenario doesn't include the last step: dog food!
By one estimate, moving from the current CPI to the chained CPI index would cost the typical CSRS retiree (who gets $32,000 per year) about $50,000 over his or her retirement lifetime.
If you work in an office and you drink coffee, you probably throw out around 500 disposable cups in a year. Across the U.S., over 23 billion paper cups end up in the trash annually, along with another 25 billion made from Styrofoam.
(Source: Co.EXIST)
TSP scores high,
flexible spending low in latest federal employee benefits survey
Federal employees have almost opposite opinions on the usefulness of the Thrift Savings Plan versus the flexible spending program and long-term care insurance available to them.
House panel probes DoD's acquisition
The DoD's focus on the acquisition workforce is key to making sure Pentagon procurement reform stays on track.
What happened to all of the young federal
The lack of 30-and-under talent in the federal workforce means agencies will be facing significant shortfalls in the future


text:
Fast median search: an ANSI C implementation Nicolas Devillard - ndevilla AT free DOT fr July 1998 1 Introduction Median filtering is a commonly used technique in signal processing. Typically used on signals that may contain outliers skewing the usual statistical estimators, it is usually considered too expensive to be implemented in real-time or CPU-intensive applications. This paper tries to gather various algorithms picked up from computer literature, offers one possible implementation for each of them, and benchmarks them on identical data sets to identify the best candidate for a fast implementation. 2 Definitions Let us define the median of N numerical values by: • The median of a list of N values is found by sorting the input array in in- creasing order, and taking the middle value. • The median of a list of N values has the property that in the list there are as many greater as smaller values than this element. Example: input values: 19 10 84 11 23 median: 19 The first definition is easy to grasp but is given through an algorithm (sort the array, take the central value), which is not the best way to define such a concept. The latter definition is more interesting since it leaves out the choice of the algorithm. Intuitively, one can feel that sorting out the whole array to find the median is doing too much work, since we just need the middle value and not the whole array sorted. However, most of the job must be done in order to assess that the median value is effectively the one in the middle. Applications of a median search are many. In digital signal processing, it may be used to remove outliers in a smooth distribution of values. A median filter is commonly referred to as a non-linear shot noise filter which maintains high fre- quencies. It can also be used to estimate the average of a list of numerical values, independently from strong outliers. In image processing, a median filter is computed though a convolution with a (2N+1,2N+1) kernel. For each pixel in the input frame, the pixel at the same position in the output frame is replaced by the median of the pixel values in the kernel. Image processing morphological filters are well described in any reference about image processing, such as [Russ]. 1 3 Generic Median Search in ANSI C 3.1 Median search using libc's qsort() Every ANSI compliant C library comes with an implementation of a quicksort rou- tine. This standard routine is however usually very slow compared to the most recent methods, and overkill in the case of median search. The main interest of this function is to give a reference of what the slowest way to achieve median search can be. On the other hand, it is extremely simple to write, portable, and easy to read. 3.2 Median search with a fast sort method: pixel qsort() This method makes use of a faster routine for array sorting, taken from literature and slightly optimized in ANSI C. It gives much better results than the Solaris qsort() for example. This routine is reasonably portable, should not be a problem for any ANSI compliant C compiler, can be encapsulated like the standard qsort() and used straightaway for many other purposes. 3.3 Recursive median search with median AHU() This algorithm has been taken from [Aho et al]. In pseudo-code, it can be described as: S is a list of numerical values k is the rank of the kth smallest element in S. procedure select(k,S) if |S|=1 then return single element in S else choose an element a randomly from S; let S1, S2, S3 be the sequences of elements in S respectively less than, equal to, and greater than a; if (|S1| >= k) then return select(k,S1); else if (|S1|+|S2| >= k) then return a; else return select(k-|S1|-|S2|, S3); procedure find_median(S) return select(|S|/2, S) This algorithm makes use of the fact that only the kth smallest element is searched for in S, thus does not need to sort the complete array. It is much faster than a complete array search, and potentially useful for other applications interested in getting other ranked values than the median. This algorithm is recursive, and it needs to allocate a copy of a part of the input array at each iteration. For big input arrays, this puts serious memory requirements and virtually no possible limit on the quantity of potentiatlly used memory. In the worst case, the amount of memory needed to work could reach N*(N-1)/2 which would most likely bring memory allocation failures or program crashes. Even if the 2 probability of hitting such cases is low, it is not recommended to use this algorithm on big arrays or in any program for which strong reliability is a keyword. This is an interesting method for educational purposes, but unrealistic to use in any other environment, because of the recursivity constraints. Furthermore, the other methods described here have both the advantage of being faster and non- recursive. NB: "Choose an element randomly in S" has been modified in the proposed implementation to "take the central element in S" to avoid a call to the random generator and a modulo division at each iteration. This brings in the fact that some arrays will be very bad cases for this method, needing a lot of iterations. Random picking would have ensured to stay (almost) always within reasonable bounds but constrains to 2 expensive calls at each iteration. 3.4 Non-recursive search using median WIRTH() This algorithm has been taken from [Wirth]. The pseudo-code for this algorithm is given in the book, and in wirth.c (see code section below) a literal translation is done from Pascal to ANSI C. It does not try to sort out the complete array but browses through the input array just enough to determine what is the kth smallest element in the input list. It is not recursive and does not need to allocate any memory, nor does it use any external function. As a result, it gains a factor 25 in speed compared to the qsort() based method. Apparently, it is the same algorithm as the AHU median, but implemented in situ. The advantage is obviously that it gets rid of recursivity, the price to pay is an initial copy of the input array because it is modified during the process. The median search is defined as a macro on top of the function which finds the kth smallest element. It defines the median for an odd number of points as the one in the middle, and for an even number the one just below the middle. See the discussion below about finding the median of an even number of elements. 3.5 Quick select This algorithm was published in [Numerical Recipes]. Speedwise, it is a close tie with Wirth's method. On the average, this one is faster, however. It works in situ and modifies the input array, so the same caveats apply: the input data set must be copied prior to applying the median search. 3.6 Torben's method This method was pointed it out to me by Torben Mogensen. It is certainly not the fastest way of finding a median, but it has the very interesting property that it does not modify the input array when looking for the median. It becomes extremely powerful when the number of elements to consider starts to be large, and copying the input array may cause enormous overheads. For read-only input sets of several hundred megabytes in size, it is the solution of choice, also because it accesses elements sequentially and not randomly. Beware that it needs to read the array several times though: a first pass is only looking for min and max values, further passes go through the array and come out with the median in little more time that the pixel qsort() method. The number of iterations is probably O(log(n)), although I have no demonstration of that fact. 3 4 Application to image processing filters 4.1 Small kernels The methods described above are very useful to search for the median value of many elements, but for small number of values there are even faster methods which can be hardwired to produce the median in the fastest possible time. In image processing, a morphological median filter on a 3x3 kernel needs to find the median of 9 values for each set of 9 neighbor pixels in the input image. Code is provided here to get the median out of 3, 5, 7, 9 and 25 values in the fastest possible time (without going to hardware specifics). Other sorting networks can be found for different numbers of values, they are not provided here. An article about fast median search over 3x3 elements can be found at [Smith]. 4.2 Large kernels Image median filters using large kernels may use the redundancy in the fact that the method is looking for the median of NxN pixels, then going to the next kernel position (usually: next pixel on the right) means taking out N pixels and adding N new ones. For a 3x3 kernel, it is unefficient to use this redundancy since only 3 pixels stay unchanged, but for large kernels e.g. 40x40, there are only 40 pixels less and 40 pixels more at each iteration, but 1560 values which stay unchanged. In that case, it may be more efficient to go to histogram or tree-based methods. No implementation for these methods is provided here, only the general ideas. Building up a histogram, one can notice that the median information is indeed present in the fact that pixels are sorted out into buckets of increasing pixel values. Removing pixels from buckets and adding more is a trivial operation, which explains why it is probably easier to keep a running histogram and update it than to go from scratch for every move of the running kernel. Interested readers are referred to [Huang et al]. The same idea can be used to build up a tree containing pixel values and number of occurrences, or intervals and number of pixels. One can see the immediate benefit of retaining this information at each step. 5 Benchmarks The following plots have been produced for all generic methods (QuickSelect, Wirth, Aho/Hopcroft/Ullman, Torben, pixel quicksort) on a Pentium II 400 MHz running Linux 2.0 with glibc-2.0.7. It is interesting to note that all methods are roughly proportional on this machine, with the following estimated ratios to the fastest method (QuickSelect). The basic method using the libc qsort() function has not been represented here, because it is so slow compared to the others that it would make the plot unreadable. Furthermore, it depends on the local implementation of your C library. The following ratios have been obtained for sets with increasing number of val- ues, from 1e4 to 1e6. The speed ratios have been computed to the fastest method on average (QuickSelect), then averaged over all measure points. QuickSelect : 1.00 WIRTH median : 1.33 AHU median : 3.71 Torben : 8.95 fast pixel sort : 6.50 4 1.6 QuickSelect Wirth AHU 1.4 pixel_qsort Torben 1.2 1 0.8 0.6 0.4 0.2 0 0 100000 200000 300000 400000 500000 600000 700000 800000 900000 1e+06 Figure 1: Benchmark for various median methods On the x-axis, the number of elements from which a median is extracted, in thousands (goes from one thousand to one million elements). On the y-axis, the time used in seconds. Some points on the curve: Elements QSelect Wirth AHU Torben pixel qsort 100,000 0.010 0.020 0.050 0.140 0.100 200,000 0.040 0.040 0.180 0.310 0.220 500,000 0.110 0.080 0.510 0.800 0.580 800,000 0.120 0.160 0.590 1.270 0.940 1,000,000 0.210 0.290 0.600 1.580 1.240 6 Frequently Asked Questions 6.1 Why would I want to use a median search? To reject outliers. When you have a signal distribution that is smooth enough but contains crazy outliers, you might get into trouble with fitting routines or statistical tools. That is the case for astronomical detectors hit by a cosmic ray for example, but there are many cases where you want to get an estimate of the average signal value without bothering about outlier rejection. A median can often be a fast and useful answer. 5 6.2 Which algorithm do you recommend? If you have little numbers of elements, e.g. for image processing filter kernels, use the provided macros to find out a median out of 3, 5, 7, or 9 elements. There is no faster way. If you are applying a kernel with a large number of elements, see the section above about large kernels. If you have a reasonable number of elements and are allowed to modify your input element list, use QuickSelect or Wirth. The choice between both should be done depending on your typical input data sets. Try out both and pick one. If you are not allowed to modify your inputs but the data set is sufficiently small to hold in memory, I would go for QuickSelect or Wirth again. Copy your input data set to memory, apply the median-finder, and destroy the temporary data set. If you are not allowed to modify your input data set and it is large enough that copying it causes serious overheads, try out Torben's method. It does not modify the input set thus avoiding the overheads of a copy, but beware that it needs to run several times through the set. Fortunately, browsing the set is done sequentially, that gives more chances of being able to read the set through bufferized inputs. 6.3 Will the give code work on my machine? Hopefully yes! There is no library call of any kind, it should work rightaway on any place that compiles C. The given code finds out the median out of a set of elements, up to you to specify the kind of elements you want to search. You could also apply templates in C++ to use the same code for any numeric type. 6.4 What is the median of an even number of elements? There are several possible answers to this question. According to the NIST web site (National Institute of Standards and Technology): Median definition: The value which has an equal number of values greater and less than it. For an even number of values, it is the mean of the two middle values. The mean is, in this case, understood as the arithmetic mean of both values (i.e. half of their sum). In Introduction to algorithms [7], the authors define two medians: the lower median and the upper median, and state that for an odd number of elements both medians are identical. In the rest of the paragraph dedicated to medians, only the lower median is considered. Example: input values: 19 10 94 11 23 17 median: 17 if element n/2 19 if element n/2 +1 If you do not require the median value to be one of the elements of the initial list, you can decide that the median is the average of the two central elements. In the above example, the median would be the average of 17 and 19, i.e. 18. You can of course use whatever average you prefer, arithmetic or geometric, since at this point it is up to you to check what suits your application. Taking the median out of a list of elements also does not mean that the elements have to be numbers, they can be anything you want provided they obey a sorting rule (i.e. it is always possible to tell if one element is greater than, smaller than or equal to another element). For some elements, taking the average does not make sense. 6 The default behaviour in the routines provided on this page is to take the element just below the middle (lower median). Taking an average of the two central elements requires two calls to the routine, doubling the processing time. Notice that if you are taking the median out of a great number of elements, and these elements tend to behave all more or less the same except some outsiders, the median is likely to be exactly the same whatever definition you use. 7 Acknowledgements Many thanks to Torben Mogensen for his non-destructive median method allowing to work on very large data sets, and for a number of fruitful discussions. My gratitude goes to Martin Leese for pointing out the histogram-based method and of course introducing me to the Quickselect method, for which he provided a C++ implementation (the C version given in here is merely an optimized translation of his code). Thanks to all contributors from the Usenet, too many to quote here. 8 Code You can download the following code from this URL: http://ndevilla.free.fr/median 8.1 qsort-based method The following code makes use of libc's qsort() to sort the entire array and return the median as the central element (or one below for an even number of elements in the array). typedef double elem_type; int compare(const void *f1, const void *f2) { return ( *(elem_type*)f1 > *(elem_type*)f2 ) ? 1 : -1; } elem_type qsort_median(elem_type * array, int n) { qsort(array, n, sizeof(elem_type), compare); return array[n/2]; } 8.2 pixel qsort #define PIX_SWAP(a,b) { elem_type temp=(a);(a)=(b);(b)=temp; } #define PIX_STACK_SIZE 50 void pixel_qsort(elem_type *pix_arr, int npix) { int i, ir, j, k, l; int * i_stack ; int j_stack ; elem_type a ; ir = npix ; l = 1 ; j_stack = 0 ; i_stack = malloc(PIX_STACK_SIZE * sizeof(elem_type)) ; for (;;) { 7 if (ir-l < 7) { for (j=l+1 ; j<=ir ; j++) { a = pix_arr[j-1]; for (i=j-1 ; i>=1 ; i--) { if (pix_arr[i-1] <= a) break; pix_arr[i] = pix_arr[i-1]; } pix_arr[i] = a; } if (j_stack == 0) break; ir = i_stack[j_stack-- -1]; l = i_stack[j_stack-- -1]; } else { k = (l+ir) >> 1; PIX_SWAP(pix_arr[k-1], pix_arr[l]) if (pix_arr[l] > pix_arr[ir-1]) { PIX_SWAP(pix_arr[l], pix_arr[ir-1]) } if (pix_arr[l-1] > pix_arr[ir-1]) { PIX_SWAP(pix_arr[l-1], pix_arr[ir-1]) } if (pix_arr[l] > pix_arr[l-1]) { PIX_SWAP(pix_arr[l], pix_arr[l-1]) } i = l+1; j = ir; a = pix_arr[l-1]; for (;;) { do i++; while (pix_arr[i-1] < a); do j--; while (pix_arr[j-1] > a); if (j < i) break; PIX_SWAP(pix_arr[i-1], pix_arr[j-1]); } pix_arr[l-1] = pix_arr[j-1]; pix_arr[j-1] = a; j_stack += 2; if (j_stack > PIX_STACK_SIZE) { printf("stack too small in pixel_qsort: aborting"); exit(-2001) ; } if (ir-i+1 >= j-l) { i_stack[j_stack-1] = ir; i_stack[j_stack-2] = i; ir = j-1; } else { i_stack[j_stack-1] = j-1; i_stack[j_stack-2] = l; l = i; } } } free(i_stack) ; } #undef PIX_STACK_SIZE 8 #undef PIX_SWAP 8.3 Wirth /* * Algorithm from N. Wirth's book, implementation by N. Devillard. * This code in public domain. */ typedef float elem_type ; #define ELEM_SWAP(a,b) { register elem_type t=(a);(a)=(b);(b)=t; } /*--------------------------------------------------------------------------- Function : kth_smallest() In : array of elements, # of elements in the array, rank k Out : one element Job : find the kth smallest element in the array Notice : use the median() macro defined below to get the median. Reference: Author: Wirth, Niklaus Title: Algorithms + data structures = programs Publisher: Englewood Cliffs: Prentice-Hall, 1976 Physical description: 366 p. Series: Prentice-Hall Series in Automatic Computation ---------------------------------------------------------------------------*/ elem_type kth_smallest(elem_type a[], int n, int k) { register i,j,l,m ; register elem_type x ; l=0 ; m=n-1 ; while (l<m) { x=a[k] ; i=l ; j=m ; do { while (a[i]<x) i++ ; while (x<a[j]) j-- ; if (i<=j) { ELEM_SWAP(a[i],a[j]) ; i++ ; j-- ; } } while (i<=j) ; if (j<k) l=i ; if (k<i) m=j ; } return a[k] ; } #define median(a,n) kth_smallest(a,n,(((n)&1)?((n)/2):(((n)/2)-1))) 9 8.4 QuickSelect /* * This Quickselect routine is based on the algorithm described in * "Numerical recipes in C", Second Edition, * Cambridge University Press, 1992, Section 8.5, ISBN 0-521-43108-5 * This code by Nicolas Devillard - 1998. Public domain. */ #define ELEM_SWAP(a,b) { register elem_type t=(a);(a)=(b);(b)=t; } elem_type quick_select(elem_type arr[], int n) { int low, high ; int median; int middle, ll, hh; low = 0 ; high = n-1 ; median = (low + high) / 2; for (;;) { if (high <= low) /* One element only */ return arr[median] ; if (high == low + 1) { /* Two elements only */ if (arr[low] > arr[high]) ELEM_SWAP(arr[low], arr[high]) ; return arr[median] ; } /* Find median of low, middle and high items; swap into position low */ middle = (low + high) / 2; if (arr[middle] > arr[high]) ELEM_SWAP(arr[middle], arr[high]) ; if (arr[low] > arr[high]) ELEM_SWAP(arr[low], arr[high]) ; if (arr[middle] > arr[low]) ELEM_SWAP(arr[middle], arr[low]) ; /* Swap low item (now in position middle) into position (low+1) */ ELEM_SWAP(arr[middle], arr[low+1]) ; /* Nibble from each end towards middle, swapping items when stuck */ ll = low + 1; hh = high; for (;;) { do ll++; while (arr[low] > arr[ll]) ; do hh--; while (arr[hh] > arr[low]) ; if (hh < ll) break; ELEM_SWAP(arr[ll], arr[hh]) ; } /* Swap middle item (in position low) back into correct position */ ELEM_SWAP(arr[low], arr[hh]) ; /* Re-set active partition */ if (hh <= median) low = ll; 10 if (hh >= median) high = hh - 1; } } #undef ELEM_SWAP 8.5 Torben /* * The following code is public domain. * Algorithm by Torben Mogensen, implementation by N. Devillard. * This code in public domain. */ typedef float elem_type ; elem_type torben(elem_type m[], int n) { int i, less, greater, equal; elem_type min, max, guess, maxltguess, mingtguess; min = max = m[0] ; for (i=1 ; i<n ; i++) { if (m[i]<min) min=m[i]; if (m[i]>max) max=m[i]; } while (1) { guess = (min+max)/2; less = 0; greater = 0; equal = 0; maxltguess = min ; mingtguess = max ; for (i=0; i<n; i++) { if (m[i]<guess) { less++; if (m[i]>maxltguess) maxltguess = m[i] ; } else if (m[i]>guess) { greater++; if (m[i]<mingtguess) mingtguess = m[i] ; } else equal++; } if (less <= (n+1)/2 && greater <= (n+1)/2) break ; else if (less>greater) max = maxltguess ; else min = mingtguess; } if (less >= (n+1)/2) return maxltguess; else if (less+equal >= (n+1)/2) return guess; else return mingtguess; } 8.6 Optimized sorting networks The following functions offer optimized median networks for 3, 5, 7, 9 and 25 ele- ments. /* 11 * The following routines have been built from knowledge gathered * around the Web. I am not aware of any copyright problem with * them, so use it as you want. * N. Devillard - 1998 */ typedef float pixelvalue ; #define PIX_SORT(a,b) { if ((a)>(b)) PIX_SWAP((a),(b)); } #define PIX_SWAP(a,b) { pixelvalue temp=(a);(a)=(b);(b)=temp; } /*---------------------------------------------------------------------------- Function : opt_med3() In : pointer to array of 3 pixel values Out : a pixelvalue Job : optimized search of the median of 3 pixel values Notice : found on sci.image.processing cannot go faster unless assumptions are made on the nature of the input signal. ---------------------------------------------------------------------------*/ pixelvalue opt_med3(pixelvalue * p) { PIX_SORT(p[0],p[1]) ; PIX_SORT(p[1],p[2]) ; PIX_SORT(p[0],p[1]) ; return(p[1]) ; } /*---------------------------------------------------------------------------- Function : opt_med5() In : pointer to array of 5 pixel values Out : a pixelvalue Job : optimized search of the median of 5 pixel values Notice : found on sci.image.processing cannot go faster unless assumptions are made on the nature of the input signal. ---------------------------------------------------------------------------*/ pixelvalue opt_med5(pixelvalue * p) { PIX_SORT(p[0],p[1]) ; PIX_SORT(p[3],p[4]) ; PIX_SORT(p[0],p[3]) ; PIX_SORT(p[1],p[4]) ; PIX_SORT(p[1],p[2]) ; PIX_SORT(p[2],p[3]) ; PIX_SORT(p[1],p[2]) ; return(p[2]) ; } /*---------------------------------------------------------------------------- Function : opt_med7() In : pointer to array of 7 pixel values Out : a pixelvalue Job : optimized search of the median of 7 pixel values Notice : found on sci.image.processing cannot go faster unless assumptions are made on the nature of the input signal. ---------------------------------------------------------------------------*/ pixelvalue opt_med7(pixelvalue * p) { PIX_SORT(p[0], p[5]) ; PIX_SORT(p[0], p[3]) ; PIX_SORT(p[1], p[6]) ; PIX_SORT(p[2], p[4]) ; PIX_SORT(p[0], p[1]) ; PIX_SORT(p[3], p[5]) ; PIX_SORT(p[2], p[6]) ; PIX_SORT(p[2], p[3]) ; PIX_SORT(p[3], p[6]) ; 12 PIX_SORT(p[4], p[5]) ; PIX_SORT(p[1], p[4]) ; PIX_SORT(p[1], p[3]) ; PIX_SORT(p[3], p[4]) ; return (p[3]) ; } /*---------------------------------------------------------------------------- Function : opt_med9() In : pointer to an array of 9 pixelvalues Out : a pixelvalue Job : optimized search of the median of 9 pixelvalues Notice : in theory, cannot go faster without assumptions on the signal. Formula from: XILINX XCELL magazine, vol. 23 by John L. Smith The input array is modified in the process The result array is guaranteed to contain the median value in middle position, but other elements are NOT sorted. ---------------------------------------------------------------------------*/ pixelvalue opt_med9(pixelvalue * p) { PIX_SORT(p[1], p[2]) ; PIX_SORT(p[4], p[5]) ; PIX_SORT(p[7], p[8]) ; PIX_SORT(p[0], p[1]) ; PIX_SORT(p[3], p[4]) ; PIX_SORT(p[6], p[7]) ; PIX_SORT(p[1], p[2]) ; PIX_SORT(p[4], p[5]) ; PIX_SORT(p[7], p[8]) ; PIX_SORT(p[0], p[3]) ; PIX_SORT(p[5], p[8]) ; PIX_SORT(p[4], p[7]) ; PIX_SORT(p[3], p[6]) ; PIX_SORT(p[1], p[4]) ; PIX_SORT(p[2], p[5]) ; PIX_SORT(p[4], p[7]) ; PIX_SORT(p[4], p[2]) ; PIX_SORT(p[6], p[4]) ; PIX_SORT(p[4], p[2]) ; return(p[4]) ; } /*---------------------------------------------------------------------------- Function : opt_med25() In : pointer to an array of 25 pixelvalues Out : a pixelvalue Job : optimized search of the median of 25 pixelvalues Notice : in theory, cannot go faster without assumptions on the signal. Code taken from Graphic Gems. ---------------------------------------------------------------------------*/ pixelvalue opt_med25(pixelvalue * p) { PIX_SORT(p[0], p[1]) ; PIX_SORT(p[3], p[4]) ; PIX_SORT(p[2], p[4]) ; PIX_SORT(p[2], p[3]) ; PIX_SORT(p[6], p[7]) ; PIX_SORT(p[5], p[7]) ; PIX_SORT(p[5], p[6]) ; PIX_SORT(p[9], p[10]) ; PIX_SORT(p[8], p[10]) ; PIX_SORT(p[8], p[9]) ; PIX_SORT(p[12], p[13]) ; PIX_SORT(p[11], p[13]) ; PIX_SORT(p[11], p[12]) ; PIX_SORT(p[15], p[16]) ; PIX_SORT(p[14], p[16]) ; PIX_SORT(p[14], p[15]) ; PIX_SORT(p[18], p[19]) ; PIX_SORT(p[17], p[19]) ; PIX_SORT(p[17], p[18]) ; PIX_SORT(p[21], p[22]) ; PIX_SORT(p[20], p[22]) ; PIX_SORT(p[20], p[21]) ; PIX_SORT(p[23], p[24]) ; PIX_SORT(p[2], p[5]) ; PIX_SORT(p[3], p[6]) ; PIX_SORT(p[0], p[6]) ; PIX_SORT(p[0], p[3]) ; PIX_SORT(p[4], p[7]) ; PIX_SORT(p[1], p[7]) ; PIX_SORT(p[1], p[4]) ; 13 PIX_SORT(p[11], p[14]) ; PIX_SORT(p[8], p[14]) ; PIX_SORT(p[8], p[11]) ; PIX_SORT(p[12], p[15]) ; PIX_SORT(p[9], p[15]) ; PIX_SORT(p[9], p[12]) ; PIX_SORT(p[13], p[16]) ; PIX_SORT(p[10], p[16]) ; PIX_SORT(p[10], p[13]) ; PIX_SORT(p[20], p[23]) ; PIX_SORT(p[17], p[23]) ; PIX_SORT(p[17], p[20]) ; PIX_SORT(p[21], p[24]) ; PIX_SORT(p[18], p[24]) ; PIX_SORT(p[18], p[21]) ; PIX_SORT(p[19], p[22]) ; PIX_SORT(p[8], p[17]) ; PIX_SORT(p[9], p[18]) ; PIX_SORT(p[0], p[18]) ; PIX_SORT(p[0], p[9]) ; PIX_SORT(p[10], p[19]) ; PIX_SORT(p[1], p[19]) ; PIX_SORT(p[1], p[10]) ; PIX_SORT(p[11], p[20]) ; PIX_SORT(p[2], p[20]) ; PIX_SORT(p[2], p[11]) ; PIX_SORT(p[12], p[21]) ; PIX_SORT(p[3], p[21]) ; PIX_SORT(p[3], p[12]) ; PIX_SORT(p[13], p[22]) ; PIX_SORT(p[4], p[22]) ; PIX_SORT(p[4], p[13]) ; PIX_SORT(p[14], p[23]) ; PIX_SORT(p[5], p[23]) ; PIX_SORT(p[5], p[14]) ; PIX_SORT(p[15], p[24]) ; PIX_SORT(p[6], p[24]) ; PIX_SORT(p[6], p[15]) ; PIX_SORT(p[7], p[16]) ; PIX_SORT(p[7], p[19]) ; PIX_SORT(p[13], p[21]) ; PIX_SORT(p[15], p[23]) ; PIX_SORT(p[7], p[13]) ; PIX_SORT(p[7], p[15]) ; PIX_SORT(p[1], p[9]) ; PIX_SORT(p[3], p[11]) ; PIX_SORT(p[5], p[17]) ; PIX_SORT(p[11], p[17]) ; PIX_SORT(p[9], p[17]) ; PIX_SORT(p[4], p[10]) ; PIX_SORT(p[6], p[12]) ; PIX_SORT(p[7], p[14]) ; PIX_SORT(p[4], p[6]) ; PIX_SORT(p[4], p[7]) ; PIX_SORT(p[12], p[14]) ; PIX_SORT(p[10], p[14]) ; PIX_SORT(p[6], p[7]) ; PIX_SORT(p[10], p[12]) ; PIX_SORT(p[6], p[10]) ; PIX_SORT(p[6], p[17]) ; PIX_SORT(p[12], p[17]) ; PIX_SORT(p[7], p[17]) ; PIX_SORT(p[7], p[10]) ; PIX_SORT(p[12], p[18]) ; PIX_SORT(p[7], p[12]) ; PIX_SORT(p[10], p[18]) ; PIX_SORT(p[12], p[20]) ; PIX_SORT(p[10], p[20]) ; PIX_SORT(p[10], p[12]) ; return (p[12]); } #undef PIX_SORT #undef PIX_SWAP References [1] The Image Processing Handbook, John C. Russ, CRC Press (second edition 1995). [2] Aho, Hopcroft, Ullman, The design and analysis of computer algorithms (p 102) [3] Niklaus Wirth, Algorithms + Data structures = Programs (p 84). [4] Numerical recipes in C, second edition, Cambridge University Press, 1992, section 8.5, ISBN 0-521-43108-5 [5] John Smith, Implementing median filters in XC4000E FPGAs, http://www.xilinx.com/xcell/xl23/xl23 16.pdf [6] T.S.Huang, G.J.Yang, G.Y.Tang, A fast two-dimensional median filtering algo- rithm, IEEE transactions on acoustics, speech and signal processing, Vol ASSP 27 No 1, Feb 1979. [7] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to algorithms, MIT press. 14
Pages to are hidden for
"median"Please download to view full document


text:
Dedicated Server Hosts
Dedicated server hosts provide customers with servers for their exclusive use, usually housed in secure data centers. While similar to colocation services, dedicated server hardware is owned by the provider, rather than the customer.
Because customers lease an entire server that is not shared with any other entity, it is a more flexible solution than shared or VPS hosting, allowing customers to have full control over the server(s). Dedicated server hosts may also include varying levels of managed support for maintenance, upgrades, patches and security which can be very beneficial for customers. For example, operating system updates and support can eliminate much of the time consuming and expensive server management burden for the dedicated server owner.
Dedicated server web hosting is typically advantageous for businesses that require more space or control over their web sites than shared plans can offer, with the added benefit of less security risk and various support options to choose from.
|Dedicated Servers | Work with Steadfast Experts
– Steadfast experts design, implement and support your custom solution
|DEDICATED from HostGator 1500 GB Transfer
With dedicated server web hosting you have the power to customize it any way you like, or let us decide for you! Your first choice will be what operating system to run. You can choose from Red Hat Linux 9.0, RHEL3, RHEL4, or FreeBSD. 1024 MB Memory, 80 GB HD, 1500 GB Transfer.
|Caronet Dedicated Servers – Experience Elite Infrastructure and Enterprise Hardware
* 99.999% Uptime SLA Guarantee with 24 x 7 x 365 Support


text:
In case you didn't know or are too lazy to look him up, Mightnighter is a hero from the Wildstorm universe and is one of DC's new attempts at diversity when it comes to the Homosexual community. He is part of Storm Watch, and from what I am to understand in another time he is married to another member of Storm Watch named Apollo. His powers include:
Battle Precognition: Midnighter has the power to predict how a battle will happen before it starts. His 'fight implants' include a 'combat computer' that allows him to run through a given combat situation millions of times in his mind, almost instantly covering nearly every possible result before the first punch is even thrown. He uses this information to predict the actions and or reactions of his foes, counteracting their moves almost before they even think to make them. According to Midnighter, his powers also work by letting him see the outcome of the battle he wants, and working backwards, following the right steps to get there.
Tactical Senses: Midnighter's senses allow him to detect any modifications or powers in anyone he looks at, as well as how they work, so he can defeat them. He can detect what special abilities a opponent has, he can see the enhancements. He can detect the increased electrical activity in an opponents brain.
Telescopic Vision:
Enhanced Hearing:
Fist Implants:
Enhanced Strength:
Enhanced Speed:
Enhanced Durability:
Enhanced Coordination:
Enhanced Reflexes:
Survival Implants: Implants used to keep him fighting in the worst of conditions.
Enhanced Healing:
and hes a master at all types of combat and every thing else you can think of.
At first, I thought he was going to be a really cool character, until I read about his powers. He has a Batman feel to him, and that's really hard to pull off, and a cool costume. But how could i possibly be interested in a character who's power is basically to just win against anyone ever?


text:
Come join us for a patriotic concert on June 27 at the Keehner Park Ampitheater. We'll be commemorating the end of World War II with some period songs, and other patriotic classics.
Many of our symphony members perform individually or in small groups. If you are interested in a small group performance, please use the contact page and someone will contact appropriate symphony members.


text:
András Sütő
András Sütő (17 June 1927 – 30 September 2006) was an ethnic Hungarian writer and politician in Romania, one of the leading Hungarian writers in the 20th century.
Early life and education[edit]
Sütő was born into a poor peasant family in Cămărașu (Hungarian: Pusztakamarás), in Cluj County, Transylvania. He received his primary and secondary school education in the Reformed College of Aiud and in the Reformed gymnasium in Cluj. After secondary school, he studied Stage Directing at the Szentgyörgyi István College of Dramatic Arts in Cluj.
He quit college in order to become the editor in chief of the Falvak Népe weekly. He moved to Bucharest in 1951 because the editorial office was relocated there. Sütő could not identify himself with the political environment of the 1950s in the capital and returned to Transylvania in 1954. He lived and worked in Târgu Mureş (Hungarian: Marosvásárhely) until near the end of his life.
Sütő was Member of the Great National Assembly, the parliament of Communist Romania, between 1965 and 1977. He also served as vice-president of the Writers' Association of Romania between 1974 and 1982.
In the late years of the Nicolae Ceauşescu regime, the works of András Sütő had been gradually banned from publication and presentation. Consequently, between 1980 and 1989 he could publish only in Hungary. During this period, he and his family were constantly harassed by the authorities and the Securitate.
He had his eye gouged out during the 1990 ethnic clashes of Târgu Mureş, and had to undergo treatment in Hungary. Sixteen years later, he died in Budapest, where he was under medical supervision.
His first work (A Letter to a Romanian Friend) was published by the Hungarian-language Világosság journal in Cluj, when he was 18.
Some of his several dozen novels and dramas:
- Mezítlábas menyasszony (drama) Bucharest, 1950
- Félrejáró Salamon (novel) Târgu Mureş, 1956
- Pompás Gedeon (drama) Bucharest, 1968
- Anyám könnyű álmot ígér (novel) Bucharest, 1970
- Egy lócsiszár virágvasárnapja (drama) Bucharest, 1975
- Advent a Hargitán (drama) Budapest, 1987
- Szemet szóért (diary notes) Debrecen, 1993
- Engedjétek hozzám jönni a szavakat (essay) Budapest, 1994
- Balkáni gerle (drama) Budapest, 1999
External links[edit]
- 1927 births
- 2006 deaths
- People from Cluj County
- Deaths from skin cancer
- Romanian people of Hungarian descent
- Members of the Great National Assembly
- Hungarian-language writers
- Hungarian dramatists and playwrights
- Hungarian essayists
- Hungarian journalists
- Hungarian novelists
- Romanian dramatists and playwrights
- Romanian essayists
- Romanian newspaper editors
- Romanian novelists
- Cancer deaths in Hungary