Its been a long time since I have written anything about our donkeys Bing and Frankie. It's probably because they have been sequestered as constant companions for our geriatric gelding, Sandi, (Winnies of Change and Seeing-eye Donkeys). Since Sandi's euthanasia three weeks ago, the donks have been released from baby-sitting duties so they can pursue other interests.
At first they appeared a bit lost. They seemed to wonder where their leader was. Why wasn't he joining them at the hay pile or eating his grain while they savored their cookies? The donks weren't necessarily depressed, just quiet. They fell out of the normal routine for a few days. Eventually, they rallied and ventured back to the carefree existence they had enjoyed before being recruited as herdmates for Sandi.
While deep snow concealed the grass and confined the donkeys to the barnyard, they were granted freedom to roam and play. It is a pleasure, (that I've sorely missed), to walk with them in the woods and to watch their sprightly antics.
Presently, many animals at MRF are entering the aging zone after living long, full lives. Each one requires special consideration in terms of maintenance and health care. I must acknowledge their limitations after the many years they went out of their way to please me. It's difficult to accept that our days together are dwindling.
Donkey youth reminds me that watching animals grow up is a joy. There is no escaping the inevitable at the end of life. However, if it is lived long and purposeful with strands of love and respect binding us together...it is so worth it.
...Bing and Frankie were only 5 and 7 months old, (respectively).
...but did not diminish their playful spirit.
Now they are in the process of losing baby teeth. Frankie has many teeth pushing their way into his adulthood.
Frankie wears an expression that suggests wisdom...or is that because of his ears?
...conceals significant coming of age transition.
Although I celebrate their new found freedom, I am indebted to Bing and Frankie for providing authentic and necessary companionship to Sandi in the last years of his life.


Two switches you have. What are those? First know what is a switch.
In electrical engineering, a switch is an electrical component that can "make" or "break" an electrical circuit, interrupting the current or diverting it from one conductor to another.[2.
When it makes the circuit, we call it a closed circuit. When it breaks the circuit, we call it an open-circuit. Electrical current flows in closed circuit only.
You have two such switches in your body, what can you do with them?
The two switches,when on, makes the circuit.
The switches have some delicate features varying with your age and mind-set. In your childhood, you have the purest mind with zero negativity, so the first switch is switched on by default; the second switch does not function. But as you grow old, your environment pollutes you with negativity, the second switch starts functioning. But your deliberate efforts in your minds can influence the functioning of the switches.
As you make the first switch on, a constant stream of positive energy, thoughts, emotions and feelings flow through you. You use all positive words. Then you are in full flow. You don't fear the unknown as well as risks. You are not only kind and honest but also courageous and responsible. Equally, you love and respect all. It adds value to your home and work-life. You attract people who love to talk to you and take advice from you. In other words, you are not only a pleasing personality but also a great achiever.
When you make the second switch on, you are swept with a strong current of negative energy, thoughts, words, emotions and so on. Not to mention, you hate your colleagues as well as misbehave with them. Your energy drops, fear reigns over you, so you don't take any risks. As a result, you don't go beyond your comfort zone and hence don't find success. In other words, you repel people with your negative personality.
What happens when we make the two switches on? How is it possible? Yes it is possible. Mostly we keep our two switches on by default.Only our deliberate thoughts and actions make them on or off.
What are those actions? Those actions either make us positive or negative. So the choice is yours. Choose either to be positive or negative. Two switches you have function at your will. Be alert.


The United Nations World Food Programme (WFP) and the United Nations Population Fund (UNFPA) in Sri Lanka embarked on a new joint project today to improve women's nutrition and promote gender equality and women's empowerment in Sri Lanka by providing critical information and services on sexual and reproductive health, nutrition and food security over the next year.
The project, which will assist communities in six districts – Monaragala, Matale, Mullaithivu, Mannar, Batticaloa, and Nuwara Eliya – focuses on the development of women entrepreneurs through initiatives aimed at enhancing their skills and boosting their income. In addition, the project will aim to improve access to sexual and reproductive health services which would enable the prevention of human rights violations such as gender-based violence.


text:
Rave Un2 the Year 2000 è un Direct-to-video del 2000 del cantante e musicista statunitense Prince in concerto. Sebbene sia stato registrato in precedenza, nel dicembre 1999, il concerto è stato originariamente trasmesso in Pay-per-view per il Capodanno 1999. Il concerto dispone di diverse importanti Cover, e i più grandi successi di Prince. Ospiti speciali inclusi ex soci della band, Rosie Gaines e Morris Day, le leggende funk Maceo Parker e membri dei Sly & the Family Stone come il bassista Larry Graham, nonché il funk-rock performer, Lenny Kravitz. Il concerto è notevole per "andare in pensione" la hit classica di Prince, "1999" (anche se sarà reintrodotta per le sue performance negli anni successivi).

Tracce
 "Let's Go Crazy"
 "She's Always in My Hair"
 "U Got the Look"
 "Kiss"
 "Jungle Love" (Morris Day and the Time)
 "The Bird" (Morris Day and the Time)
 "American Woman" (Lenny Kravitz)
 "Fly Away" (Lenny Kravitz)
 "Gett Off"
 Medley  (Rosie Gaines, Mike Scott, Maceo Parker)
 "It's Alright"
 "Everyday People" (Cynthia Robinson, Jerry Martini)
 "Higher"
 "Purple Rain"
 "The Christ" (versione reintitolata di "The Cross")
 Blues Medley (Maceo Parker, Johnny Blackshire)
 "Nothing Compares 2 U"
 "Take Me with U"/"Raspberry Beret"(con Mr. Happy in coda strumentale)
 "The Greatest Romance Ever Sold"
 "Baby Knows"
 "1999 sample intro"
 "Baby I'm a Star"
 "1999"

Collegamenti esterni

Film musicali

redpajama_set_name: RedPajamaWikipedia


text:
Chelsea confirmed as Women Super League champions while Liverpool relegated on points-per-game system
Isabelle Barker
Jun 5 2020, 6:23 ET
Updated: Jun 5 2020, 11:46 ET
CHELSEA have been crowned Women's Super League champions after the final table was determined by points-per-game.
A statement from the FA also confirmed that Aston Villa will be promoted to next season's top-flight, with Liverpool relegated to the Championship.
Chelsea have been confirmed as Women Super League championsCredit: Reuters
The top two flights of women's football were axed on May 25 due to the killer virus.
Manchester City and Chelsea have been awarded places in the Champions League for next season.
The Blues sat second in the top-flight when the season was put on standby in March, but have leapfrogged table toppers Manchester City because they had played one less game.
City had 40 points from 16 games, while Chelsea had 39 points from 15 matches.
An official statement from the FA said: "The FA Board has reached a majority decision to decide the 2019-20 Women's Super League and Women's Championship on a basic points-per-game basis, with promotion and relegation determined on sporting merit,
"As a result, The FA Board has today confirmed the decision to award the 2019-20 Women's Super League title to Chelsea Women, and to award the 2019-20 Championship title to Aston Villa Women FC."
We have some news for you!
— Chelsea FC Women (@ChelseaFCW) June 5, 2020
More follows...
AEW's Thunder Rosa delights fans in thong ahead of Britt Baker PPV match
Figo's daughter dating royalty after hooking up with King Felipe VI's cousin
BROOKEING GOOD
Ex-WWE star Brooke Adams shows off amazing figure in sexy Instagram snaps

redpajama_set_name: RedPajamaCommonCrawl


text:
HOK and Snow Kreilich Architects reveal design concept for 'iconic landmark' stadium in St Louis
by Andrew Manns | 04 Jun 2019
The new stadium will connect two of the city's important civic spaces – Gateway Arch and Forest Park / HOK
We are inching closer to making this a reality for St Louis
– Carolyn Kindle Betz
HOK and Snow Kreilich Architects have unveiled their design for MLS4TheLou – the Major League Soccer (MLS) stadium proposed for St Louis, Missouri.
The stadium will serve as the home of the as-yet-unnamed St Louis MLS soccer club.
The new facility will feature a translucent ETFE canopy which will provide cover for fans and allow for well-lit spaces below.
Light will pass through directly onto the field, helping game-day visibility and grass growth.
The overall fan experience has been an important factor guiding the initial design and HOK has revealed it will include a number of innovative spectator features.
Fans will be able to enter the stadium from all sides, with a major entry plaza serving as a pre-game gathering space for fan processions and post-game celebrations.
When it comes to sightlines, every seat will be within 36.3m (120ft) of the pitch to give some of the best views in soccer, with the closest seats 6m (20ft) from the touchline.
The pitch will be countersunk, sitting 12m (40ft) below street level, creating an urban footprint with a below-ground-level playing field.
Included within the immediate construction of the stadium will be a mixed-use development called the Downtown West District, with retail, restaurants and gathering spaces that will be open and accessible to city residents and visitors year-round. Pop-up retail space will also be available to local businesses.
The stadium design will open to the north and east, creating a visual connection to Downtown West.
The architects say the roof form will serve as an iconic landmark as visitors approach downtown St Louis from the west.
The stadium, which will host up to 23 games a year, is tentatively scheduled for completion in 2022.
HOK Snow Kreilich Architects St Louis
The project is scheduled to be completed in 2022 Credit: HOK
The architects say the stadium roof will become an iconic landmark Credit: HOK
HOK and Snow Kreilich Architects have unveiled their design for MLS4TheLou – the Major League Soccer (MLS) stadium proposed for St Louis, Missouri. The stadium will serve as the home of the as-yet-unnamed St Louis MLS soccer club. The new facility will feature a translucent ETFE canopy which will provide cover for fans and allow for well-lit spaces below. Light will pass through directly onto the field, helping game-day visibility
CLD,SAR,ARC,DES,DEV
Painting With Light
Painting with Light is a team of professional lighting and multimedia experts who design and produce visual experiences that dazzle & shine.
Heritage: Lucky dip
Extreme Climates: Into the wild
"Funding woes and murky timelines are common problems. It can be easier to make a difference one small project at a time"
From parks designed to mitigate the effects of flooding to warming huts for one of the world's coldest cities, these projects have been designed for increasingly extreme climates
Arts: The art of hospitality
Myrtha Wellness
Last word: Tina Norden
"We have created an approach which is playful, provocative but also functional"
Conran and Partners' Tina Norden on playing with colour at Prague's newly redesigned Hotel Maximilian
Interview: Dana Kalczak
"If we had focused entirely on high tech in the hotel, the artistry we normally strive for would have been compromised"
Four Seasons' vice president of design speaks to CLAD about working with Norman Foster and creating magical moments
Interview: José Alminaña
"We are committed to designing evocative landscapes informed by the best environmental science"
The Andropogon principal on pushing the boundaries of landscape design for the benefit of humans and nature
CLAD products: CLADkit
Interview: Manuelle Gautrand
"The cities where you have good cultural buildings and facilities – it's a way for people to mix, to share the city in a much deeper way"
The French architect and winner of the 2017 European Prize for Architecture tells us why she is determined to surprise


Workers loaded a large section of the confederate monument on a truck during deconstruction of the monument Sunday, nov. 20. The monument will be reassembled in Brandenburg, where it will join other monuments in a historical display.
The Confederate Monument, located on Third Street on the edge of UofL's Belknap Campus, will be relocated to Brandenburg, Kentucky. The monument was given to the city of Louisville in 1895 to commemorate those who died in the Civil War, according to the Courier-Journal.
However, many believed the statue to be a symbol of slavery, which sparked contentious debates as well as a legal battle between its supporters and the City of Louisville and UofL. After the initial announcement was made in April about the intention to relocate the statue, a Louisville judge rejected a challenge by those wanting it to stay put.
A compromise was reached with the statue's relocation to Brandenburg, Kentucky, under an agreement approved by Louisville Mayor Greg Fischer.
Brandenburg will use the monument as part of its biennial Civil War re-enactments.
The effort to properly dismantle the 70-foot-tall structure cost $400,000, $350,000 of which was provided by the UofL Foundation, and $50,000 provided by the city.
During the process, construction crews unearthed a time capsule that is expected to be loaned to the Filson Historical Society.


text:
Q: uploading pictures by email I was looking for uploading photos by email documents (in php) but couldn't find good one.
Is there any easy ways to upload pictures/photos by email?
ie. steps,
1) on mobile devices, email a picture to private-email@domain.com
2) copy the picture into our server like facebook or flickr

ps. I run apache servers, mysql and php

A: There are a number of different approaches to receiving email with PHP. The main options are:

*

*Retrieve the emails via background job (cron etc) and IMAP/POP3

*Run a mail server and make that send the content into the app directly (pipe it into php)

*Use a third party service

I wrote a blog post that was for Rails here, although it's for Rails pretty much all the principals still apply to PHP and translate directly.

redpajama_set_name: RedPajamaStackExchange


Woodland Manor, a spectacular estate in Brookline, hit the market last week for $90 million dollars. The immaculate estate covers over 14 acres in one of Boston's most expensive areas, and it's a mere 5 minutes away from Boston's downtown.
The estate is home to Paul Fireman, founder of Reebok and current chairman of Fireman Capital Partners. He is the one who bought and transformed the property from a rocky shrubby parcel into a beautifully manicured estate featuring rolling landscapes, ponds, and sculpted rock outcrops. In 2000, he bought the property and built the mansion that sits atop this magnificent estate.
The 26,000 square foot home offers 8 bedrooms, 7 bathrooms, and 5 half bathrooms, a driveway that is almost a half mile, a 5 car garage, a grand entry and many more details to awe over. The property is located adjacent to the famous Brookline Country Club.


One way we've been able to up our vegetable intake is to try our best to eat a salad every day.
We've tried to make the salads as easy to eat as possible by preparing them ahead of time. On the weekend, we do a big salad jar prep session.
We start with a bunch of clean mason jars. You can use any type of jar that has a lid. Old spaghetti sauce jars will work too.
We start by putting olive oil and balsamic vinegar in the bottom of the jars. This is the dressing for our salads.
Then, we put the more solid items into the jars. This week we used garbanzo beans and grape tomatoes. They sit on top of the salad dressing and keep it from soaking into the greens.
We also added in some red peppers and radishes.
Finally, we stuffed a bunch of spinach on top. You'd be surprised how much spinach you can smoosh into these jars. I've read that the more tightly-packed the jars are, the better the salads will keep over the course of the week.
Then, we put the tops on the jars and store them in the fridge. If you like to have cheese on your salad, you can add that on top of your greens.
We usually end up eating our salads up within a 4-5 days. So far, we've had good luck with the salads staying fresh that long. We keep them in the fridge until we're ready to eat them.
Another simple salad I love to make is the beet, goat cheese and arugula salad pictured above. Just put the ingredients in in the order listed above, and enjoy yummy salads for the next few days!
The salad jars are nice and portable, and they don't take up too much space in the fridge. They're nice for taking to work, and you can always top them with chicken or whatever else you have on hand.


Staring up into the sky and seeing the stars and planets revolve above you is one of those joys you can have wherever you are in the world for free. Getting to know the night sky can be very rewarding. You understand more about what is going on above you. How big things are, what they are made of and how far away they are.
We have a bimonthly beginners meeting in Bath starting at 7:30pm at the the Herschel Museum of Astronomy on New King Street. This is an opportunity to get to know the group and get involved. The meetings occur on the last Thursday of alternate months and you can find the details of each on our Facebook page @BathAstronomers. Alternate months we'll meet up at a local public house (the New Inn, Monmouth Street) to chat and discuss looking up. If you want, you can pop along to one of the William Herschel Society's public lectures. These occur every month or so, usually at Bath Royal Literature and Science Institute (BRLSI) from 7:30pm. If you like what you see, you can opt to join the Society, see Membership.
Don't rush out and buy a telescope. Come, join in and find out more. Find out what interests you most. Another member is likely to have equipment similar to that you might what to buy so we encourage having a go and making sure a purchase is right for you.
Subject to stock, we are often able to loan out telescopes too. These gifted to the society telescopes are good introductions to astronomy and helping you learn your way around the skies.
The group is a safe environment to find out more, find like minded people and start exploring the Universe. Pop along to one of our gatherings and ask for Simon or Jenna.


The Senior Manager will be responsible for the following: directing and coordinating department activities, reviewing and analyzing reports, records, and directives, as well as monitoring and analyzing costs and budget preparation. This position will also prepare reports and records for department leadership, coordinate department activities to ensure efficiency and economy, and evaluate, develop, and improve practices and procedures. In addition, hire, coach and provide career development to the staff, correct non-compliant behavior and impose disciplinary action as required. Manage the operational activities of the department in accordance with established policies and procedures. Other duties as assigned.
• Airport ramp environment, subject to varied weather conditions and elevated noise levels.


Having sore muscles after an intense workout is very common, especially for beginners who are just starting out. This gentle and invigorating yoga sequence can help you ease post-workout muscle soreness and increase your mobility and flexibility for future workouts.
4. Downward facing dog pose: 60 seconds. Extend your arms and legs and lift your hips up and back. Breathe deeply, open your shoulders and push your heels down.
6. Crescent lunge pose: 30 seconds + 30 seconds. Breathe out as you step your right leg straight back and bend your left knee, and inhale as you lift your torso and sweep your arms out to the sides and overhead. Exhale as you return to standing forward bend and then repeat on the opposite side.
7. Dolphin pose: 30 seconds. Place both hands on the floor and step your right leg back beside the left. Press your palms and forearms into the floor, straighten the knees and lift your hips up and back.
8. Cobra pose: 30 seconds. Lie on your belly with your hands under your shoulders and, as you inhale, straighten your arms and lift your chest off the floor.
9. Bridge pose: 30 seconds. Lie on your back, place both feet flat on the floor, inhale and lift your hips and chest up.
10. Knees to chest pose: 60 seconds. Lower your hips back to the mat and pull both knees up toward the chest.
11. Bound angle pose: 30 seconds. Sit up, bend your knees, press the soles of your feet together and drop the knees out to the sides.
12. Half lord of the fishes: 30 seconds + 30 seconds. Cross your right leg over the left, placing the sole of your right foot on the outside of your left thigh. Rest your right hand on the floor, twist your upper body to the right and pull your right knee toward the chest. Hold the pose for 30 seconds and then repeat on the opposite side.
13. Reclining bound angle pose: 60 seconds. Return to bound angle pose and, as you exhale, lie down with your arms alongside your body and your palms facing up.
14. Pigeon pose: 30 seconds + 30 seconds. Get on your hands and knees and bring your left knee forward and out to the left side. Slide your right leg back and tuck your right toes under. Spread your left toes, elongate your spine and gaze up. Stay in pigeon pose for 30 seconds, and then repeat with the opposite leg.
15. Plow pose: 30 seconds. Lie on your back, bend your knees and lift your legs, buttocks and back all at once. Slowly straighten your legs and spine, reach the toes to the floor, release the arms, squeeze the shoulder blades and interlace your fingers.
16. Supine spinal twist pose: 30 seconds + 30 seconds. Bring your legs back to the mat, bend both knees, rotate your hips to the left, extend your left leg, and cross the right knee over to the left side. Extend your right arm out to the side and rest your left hand on your right knee. Turn your head to the right and hold the pose for 30 seconds. Exhale as you release the pose, and then repeat on the opposite side.
17. Seated forward bend: 60 seconds. Sit on the floor with your feet together and your legs extended. Exhale as you bend at the hips and then slowly lower your torso and lengthen the spine.
Ease post-workout muscle soreness & increase your flexibility with this gentle yoga flow!


Independence is one thing that we strive to maintain as we get older. However, at one stage or another, we may all face the possibility of moving into a Retirement Village or Aged Care Facility, or arranging the move for a family member or loved one.
Depending on individual needs, a person may obtain residency in an Aged Care Facility or a Retirement Village, or alternatively they may require Community Care. So what are the differences and what should one consider from a legal point of view?
The following Plain English Guide outlines the options available to people and the major issues that may arise in relation to each.
Aged Care Facilities are facilities regulated under the Aged Care Act (Cth) 1997 which are operated by approved providers. The type of care that is provided is ordinarily provided in either Hostels or Nursing Homes.
In order to reside in an Aged Care Facility, the person must undergo assessment by an Aged Care Assessment Team (ACAT) to determine the needs of the person and their independence levels. During this assessment, ACAT applies the principles of the Approval of Care Recipients Principals (being principals setting the criteria for eligibility into residential care).
Upon entering into an Aged Care Facility, the provider will usually require the person to enter into an occupancy agreement under which the person will have to make payment of an Accommodation Payment or pay a daily fee.
rights and responsibilities of the resident.
Each person, having individual needs, should make themselves satisfied that the services available within the Aged Care Facility are sufficient for their needs.
Retirement Villages in NSW are regulated by the Retirement Village Act (NSW) 1999 (as amended) (the 'Retirement Village Act').
There are various forms of retirement village contracts. These are usually one or a combination of a lease, strata title, loan agreement or occupancy agreement.
Before entering into a retirement village contract, the village operator must give to the proposed resident a Disclosure Statement. The form of Disclosure Statement is prescribed under the Retirement Village Act (and its regulations) and generally sets out the nature of services and facilities available at the village, location of nearest hospitals, transport availability, costs when entering and terminating the village contract and many other aspects applicable to the retirement village that may assist in determining whether that retirement village is the right one for the person.
The Retirement Village Act also makes provisions for a settling in period and cooling off period. These periods have been implemented into the law to protect the residents and make sure that they have sufficient time to understand the documentation and make sure they have made the right decision to 'settle in' to the village.
It is also a common practice for the village owner to appoint a manager to control the day to day operation of the village.
A person intending to enter into a retirement village should ensure that they are satisfied with the location of the unit, its inclusions, services, and any departure fees together with recurrent charges and the nature of the tenure (eg, lease/strata title). They should also have a sound understanding of the terms and conditions of the village documentation.
The alternative to aged care facilities and/or retirement villages is for a person to apply for community care/support. If a person intends to contract a community care provider to do general jobs around the home, first and foremost they should ensure that the individual is trustworthy and reliable.
In the event that the person becomes family/friend dependent, it is very important to realise that there is the possibility that the relationships can become strained over time. The arrangement may also impact on the person's financial security, particularly if there are underlying illegitimate intentions that have been overshadowed by a need for care.
How can Coleman Greig Help?
If you, or a family member, find yourself investigating residential options for seniors our specialist team of property lawyers can help to ensure that you have a clear understanding of the best option for you, as well as your rights and your obligations.
Retirement Village contracts and Aged Care Facility occupancy arrangements can be very complex. Unfortunately when the need arises for someone to enter into such an agreement there can also be a lot of emotion surrounding the decision or health concerns, which can add to the confusion. We can help to de-mystify the process and ensure that the facility or village of choice is indeed the right one for you.
For more information, please contact our Retirement Living team in Parramatta, Penrith and Norwest.
Disclaimer: The information provided in the document is a general summary and is not intended to be nor should it be relied upon as a substitute for legal or other professional advice.


text:
La saison 2005-2006 du FC Sète est la vingtième saison du club héraultais en deuxième division du championnat de France, la première après seize saisons passées au niveau amateur. Cette saison est marquée par une volonté d'asseoir le club dans le monde professionnel en se maintenant en deuxième division.

Claude Calabuig, entraîneur de 58 ans, est à la tête du staff sétois avec pour mission d'obtenir le maintien le plus rapidement possible. Le club héraultais lutte durant la première moitié de saison pour assurer son maintien avant de s'effondrer pour terminer à la dernière place du classement et ce malgré les changements d'entraîneur les  et  qui ont vu Ludovic Batelli remplacer l'entraîneur héraultais, lui-même remplacé par Robert Buigues quelques mois plus tard.

Les Sétois participent également à la Coupe de France, où ils échouent dès le huitième tour face au Montpellier HSC et à la Coupe de la Ligue où ils ne franchissent même pas le premier tour, cédant face à l'EA Guingamp.

Avant saison

Objectif du club
L'objectif est avant tout d'assurer le maintien, ce qui passe par une préparation physique intense et un recrutement de qualité (joueurs professionnels venant renforcer l'effectif qui a obtenu la montée l'an passé.)

Transferts

Préparation d'avant-saison

Compétitions

Championnat

La saison 2005-2006 de Ligue 2 est la soixante-septième édition du championnat de France de football de deuxième division et la quatrième sous l'appellation . La division oppose vingt clubs en une série de trente-huit rencontres. Les trois meilleurs de ce championnat sont promus en Ligue 1 alors que les trois derniers sont relégués en National. Le FC Sète participe à cette compétition pour la vingtième fois de son histoire et la première depuis 16 ans qu'il n'a plus évolué à ce niveau.

La première partie de saison est très médiocre, malgré notamment une belle victoire 2-0 face à Montpellier.

La deuxième partie de saison est catastrophique, le club n'ayant jamais quitté la dernière place, qui peut expliquer les deux changements d'entraîneurs.

Coupe de France

La coupe de France 2005-2006 est la  de la coupe de France, une compétition à élimination directe mettant aux prises les clubs de football amateurs et professionnels à travers la France métropolitaine et les DOM-TOM. Elle est organisée par la FFF et ses ligues régionales.

Coupe de la Ligue

La Coupe de la Ligue 2005-2006 est la  de la Coupe de la Ligue, compétition à élimination directe organisée par la Ligue de football professionnel (LFP) depuis 1994, qui rassemble uniquement les clubs professionnels de , Ligue 2 et National.

Matchs officiels de la saison
Le tableau ci-dessous retrace les rencontres officielles jouées par le Football Club de Sète durant la saison. Les buteurs sont accompagnés d'une indication sur la minute de jeu où est marqué le but et, pour certaines réalisations, sur sa nature (penalty ou contre son camp).

Joueurs et encadrement technique

Encadrement technique
Claude Calabuig est l'entraineur du club en début de saison. Cet ancien défenseur de 58 ans a joué pour le FC Sète dans les années 1960-1970, à l'époque où le club était encore professionnel. À partir des années 1980 il devient entraîneur dans son club formateur et alterne durant plusieurs années entre poste sur le banc et dans les coulisses du club. Son retour aux affaires en 2003, permet au club de remonter en Ligue 2 après de nombreuses années dans les divisions nationales amateures. Malheureusement, ses résultats étant très en deçà des attentes des dirigeants, il est remercié le  et remplacer par Ludovic Batelli.

Cet ancien gardien de but nordiste a fait une carrière honorable avant de devenir entraîneur en 1995. Après des expériences à l'US Saint-Georges et au Valenciennes FC, il se retrouve entraîneur de la réserve de l'Amiens SC. Il n'hésite donc pas très longtemps lorsque Emile Anfonsso l'appelle au chevet du FC Sète en . Malheureusement, il n'arrive pas mieux que son prédécesseur à redresser la barre et est remercié à son tour le .

Il est remplacé par Robert Buigues, qui est un baroudeur du football français. Après avoir connu une carrière professionnelle dans les années 1970-1980, le milieu de terrain né en Algérie, va devenir entraîneur en 1985 et va enchaîner les expériences plus ou moins longues avant de signer au FC Sète pour tenter de sauver le club de la relégation.

Effectif professionnel

Statistiques individuelles

Tactique

Aspects juridiques et économiques

Affluence et télévision
Affluence du FCS à domicile

Équipe réserve et équipes de jeunes

Annexes

Notes

Références

Feuilles et résumés de matchs

Bibliographie
Cette bibliographie présente quelques ouvrages de référence de base. Ceux qui ont été utilisés pour la rédaction de l'article sont indiqués par le symbole .

Saison du Football Club de Sète
Sète


text:
Q: jQuery Ajax call exception restricting subsequent ajax calls Dears, I am doing multiple ajax calls in my web application & few library calls are happening as part of APM out of which intermittently the AJAX call is failing with "replace of undefined" then the subsequent ajax calls are failing. I have to refresh the page then only the ajax call is working. If I initiate some ajax, by default ajax error method only it is calling.
What is the best approach to handle this ajax subsequent calls without page refresh.
Thanks in advance.


text:
CURRENT Issue EDITORIAL statement BLOG ARCHIVE
Explore the Vectors Journal
Current Issue: Memory
About Vectors
— Submissions
— Join Mailing List
— Editorial Staff
— Editorial Statement
Video Tutorial Index
By Sharon Daniel
Design by Erik Loyer
Author's Statement
"Truth is not a matter of exposure which destroys the secret, but a revelation that does justice to it."
Walter Benjamin - The Origin of German Tragic Drama
There are secrets that are kept from the public and then there are "public secrets" - secrets that the public chooses to keep safe from itself, like the troubling "don't ask, don't tell." The trick to the public secret is in knowing what not to know. This is the most powerful form of social knowledge. Such shared secrets sustain social and political institutions. The injustices of the war on drugs, the criminal justice system, and the Prison Industrial Complex are "public secrets."
The public perception of justice - the figure of its appearance - relies on the public not acknowledging that which is generally known. When faced with massive sociological phenomena such as racism, poverty, addiction, abuse, it is easy to slip into denial. This is the ideological work that the prison does. It allows us to avoid the ethical by relying on the juridical.
The expansion of the prison system is possible because it is a public secret - a secret kept in an unacknowledged but public agreement not to know what imprisonment really means to individuals and their communities. As the number of prisons increases, so does the level of secrecy about what goes on inside them. The secret of the abuses perpetrated by the Criminal Justice System and Prison Industrial Complex can be heard in many stories told by many narrators, but only when they are allowed to speak. After a series of news stories and lawsuits documenting egregious mistreatment of prisoners in 1993, the California Department of Corrections imposed a media ban on all of its facilities. This ongoing ban prohibits journalists from face-to-face interviews, eliminates prisoners' right to confidential correspondence with media representatives, and bars the use of cameras, recording devices, and writing instruments in interviews with media representatives. Women incarcerated in California are allowed visits only from family members and legal representatives. Inmates are not allowed access to computers, cameras, tape recorders or media equipment of any kind. Such restrictions preserve the public secret.
For the past three years, I have visited the Central California Women's Facility [CCWF] as a legal advocate. I work with a non-profit, human rights organization, Justice Now. Together we have been documenting conversations with women prisoners at CCWF, the largest female correctional facility in the United States in an effort to unmask the well known, yet still secret injustices that result from our society's reliance on prisons to solve social problems. Given the ban on conversations with the media, I would not have had access to the women who have contributed to Public Secrets without the support of Justice Now. As a "legal advocate" I am allowed to record my conversations with the women and solicit their stories, ideas, and opinions.
The visits require adherence to Kafkaesque regulations and acceptance of invasive search and surveillance procedures. I am registered for each visit in advance and searched on entry. I am allowed to bring in only a clear plastic baggie with a clear ink pen, my drivers license, a blank legal pad and my mini-disc recorder. The recorder has to be approved weeks in advance (the serial number is registered and checked) and the device is inspected on entry and exit. Only factory-sealed discs are permitted in.
After our interviews the women are subject to strip search and visual body cavity searches that may be performed by male guards.
Clearly, the women I work with are highly politicized and are seriously committed to this endeavor. For these women our conversations are acts of ethical and political testimony - testimony that challenges the underlying principles of distributive justice and the dehumanizing mechanisms of the prison system. They are quite literally historians and theorists who speak out in an effort of collective resistance. I collaborate with them first as a witness and then as a "context provider." After soliciting their opinions and collecting their stories, it is my responsibility to create a context in which their voices can be heard across social, cultural and economic boundaries. My conversations with these women form the basis of Public Secrets which in turn brings their voices into dialogue with other legal, political and social theorists such as Giorgio Agamben, Michael Taussig, Walter Benjamin, Fredric Jameson, Catherine MacKinnon, and Angela Davis. While this is a dialogue that I have constructed between interlocutors whose perspectives originate from very diverse social locations, for me all of their voices emerge out of a shared ethos and converge in critical resistance.
The linking of these voices that occurs in Public Secrets originated in an essay "The Public Secret: Information and Social Knowledge" that I wrote for a special issue of the online journal Intelligent Agent. The essay also provided a point of departure for the design of the data structure that organizes the content of Public Secrets. In all of this work, I see the public secret as an aporia - an irresolvable internal contradiction, between power and knowledge, between information and denial, between the masks of politics and the goals of an open society (one in which the state is expected to act for the people as guarantor of human and civil rights). Building on this concept, we have created three main branches within Public Secrets, each structured as an aporia; inside/outside, bare-life/human-life, and public secret/utopia. Each aporia frames multiple themes and threads elaborated in clusters of narrative, theory and evidence. Together they explore the space of the prison - physical, economic, political and ideological - and how the space of the prison acts back on the space outside to disrupt and, in effect, undermine the very forms of legality, security and freedom that the prison system purportedly protects.
Three years ago, on visiting day, I walked through a metal detector and into the Central California Womens' Facility. It changed my life. The stories I heard inside challenged my most basic perceptions - of our system of justice, of freedom and of responsibility. Walk with me across this boundary between inside and outside, bare-life and human-life, and listen to Public Secrets.
— Sharon Daniel
Editor's Introduction
Designer's Statement
View Peer Response + Discuss
Project Credits
Project Technologies
Plug-in(s) you will need to view this project:
Flash 8 Plug-In Browser application providing fluid vector-based graphics and interface
Development and data handling applications:
HTML 4.0 HTML with JavaScript
MySQL 5.0 Open-source relational database
PHP 5.0.4 PHP Hypertext Preprocessor
Dead Reckoning | Public Secrets | Unmarked Planes and Hidden Geographies | Malperception | Enfolding and Unfolding | Tracking Theory | The Virtual Window Interactive


As we face the prospect of a long, chilly winter, the gardeners among us are busy planting their bulbs, which will sprout next year with the first signs of spring. Today, in the age of aromatherapy and the celebration of scents, gardeners are choosing fragrance over color in selecting their bulbs.
Since many tulips lose their fragrance when cut, forcing bulbs in pots is the way to bring the scents of spring indoors – whether forced over winter at home, or bought in spring as potted plants.


Home is where the heart is. Well, that's how the saying goes at least. But we like to say that home is where the trendy colors are. Having exciting and trending color paints in your home is a sure fire way to love where you're at, whether your residence is old or new. Fresh paint and new colors can have an immense effect on energy and psychological well being. So with no further ado, below are seven different trending colors for you to consider using for that paint job you've been holding off on.
The trendy colors of 2019 are generally earthy. With more and more people looking to nature to soothe the soul, it is no surprise that the earthy colors are running the scene.
Mushroom is a beautiful fusion of beige or brown and light gray. The light gray lightens the saturated browns and beige shades. The color is very soothing because of its lightness and evoking of natural woodlands with the beige and brown shading. It is also inviting and relaxing. The gray in the color mushroom also produces a level of sophistication. Well suited for common spaces and study spaces, this color would do well in a bedroom or powder room as well.
Forest green is a color that brings nature and its healing powers directly into your home. Green is a naturally appealing color for humans because of its botanical ties. Green is one of the strongest natural colors. Forest green is also a very rich color, stimulating intellectual curiosity and having deep emotional appeal. Forest green is an ideal color for an office space or a study in your home. Also, because of its deep, rich nature, the color does well in bedrooms.
Coral is the color to use for instilling vibrant energy into a room. The color inspires creativity and boosts the energy of any space. In addition to being vibrant, and therefore stimulating, the color is fun. It brings a splash of life to the earth-toned list of trendy colors. The color is great for bedrooms that are well lit, for powder rooms, and for open living spaces. Because of the bright nature of coral, it is better suited for well lit rooms and open spaced rooms, as this color in a confined area can be overwhelming.
Light blues, such as gray-blues or a powder blue, are phenomenal hues for the home. The colors touch on hints of classic interior design. The color is soothing to the eye and creates a calming atmosphere for the room. Blue is a naturally appealing color for people. It invokes the nature of bodies of water and the ensuing psychological soothing. This color is very universal in application. The light blues are perfect for dining rooms donning antique and victorian design. Light blue will also do just fine in your bedroom or powder rooms. This color is a soothing, semi-neutral tone that will not dominate a space, but rather open it up.
In the age of technology and the smart nature of household objects, new interior colors are beginning to rear their heads. Deep Lavender/Twilight Purple is a great color to compliment all of those neon colors being emitted by our homes' tech. This shade of purple evokes intellectual stimulation and relaxation. The lavender shades of purple are great for reducing stress and because of this they are great colors for common living spaces. They also perform great in bedrooms. With the tech age among us and here to stay, embracing this deep, intriguing shade of purple will sew together your living space seamlessly.
A deep rust color creates an earthy space. Its deep saturation makes it cozy, warming color for rooms. It also hints at southwest inspiration and the rustic scene. This color is also intellectually stimulating and emotionally evoking. For these reasons, the color is well suited for office spaces or study spaces in your home. Deep rust is also a great color for a decorative dining room as well as bedrooms. This color creates a cozy, comfortable atmosphere and so can be used wherever you need a warming room.
The colors occupying the list are mostly earth tones. Coral is the lone wolf on the list, being the only vibrant color. The light blues and deep lavender also hint at nature and evoke the relaxation that is psychologically presented by nature.
The trendy colors in 2019 very much represent our desire as a society to harmonize with nature. The healing effects they can bring to our hectic lives is essential to a peaceful home. The increasing speed at which society moves at this point calls for more attention on relaxation and stress reduction in the home. That is why the light hued colors and earth tones dominate this list. For help with your home's design, visit https://www.qcoasthomes.com.au/. So what are you waiting for? Pick some colors and transform that space of yours!
How to find Affordable Contemporary Rugs?


Mammoth Hospital has received an $11,000 grant from the California Health Foundation and Trust to purchase and implement the Ask Me 3® program. This educational program, endorsed by the National Patient Safety Foundation, is designed to improve communication between patients and health care providers so patients get the information they need to be able to take better care of themselves.
Ask Me 3® is designed to meet the challenge of health literacy. Currently in our country 9 out of 10 adults do not fully understand their exchanges with health care providers. Everyone is susceptible regardless of age, race, education, or income. This is understandable as going to the doctor can be challenging and intimidating. Medical visits often entail confusing terminology and lots of information to process – all while feeling sick or injured. Additionally, patients are frequently afraid to speak up and ask questions.
This situation can lead to failure for both patients and healthcare providers. Poor understanding of health information often leads to poor health outcomes resulting in higher rates of hospitalization, more emergency department visits, more readmissions to the hospital, and higher medical costs.
Mammoth Hospital and clinics will have Ask Me 3® pamphlets available in English and Spanish throughout the facility. These pamphlets guide patients to ask these 3 important questions every time they have a healthcare encounter. Posters encouraging patients to ask the key questions before they leave will be widely displayed. Additionally, patients admitted to the hospital will have notepads at the bedside with space to write down the answers to questions. Classes will be presented for hospital and clinic staff about health literacy that will teach methods to help patients understand better.
Mammoth Hospital is excited to have received a generous grant to implement this program. Staff is energized to help patients be better informed about their healthcare and have the knowledge to take better care of themselves.


text:
Frohes Fest è il secondo album in studio del gruppo musicale tedesco Unheilig, pubblicato nel 2002.

Tracce

Frohes Fest

Tannenbaum (EP bonus)

Collegamenti esterni


text:
Displaced is a 2010 documentary film directed by the Somali-American filmmaker Idil Ibrahim about the recruitment of Somali-American young men into the civil war in Somalia and the effect their disappearance has on their families. Her directorial debut, it was released as part of the Tribeca Film Institute's Tribeca All Access program. The Iranian-Canadian-American filmmaker Anna Fahr served as a producer on the project.

References

External links

Zeila Films

2010 films
American documentary films
Somali Civil War (2009–present)
Documentary films about jihadism
Films shot in Somalia
2010 directorial debut films
2010s English-language films
2010s American films


Getting feedback that I've helped patients creates a sense of satisfaction. It's why I come to work every day.
Treating others as I would want to be treated is the guiding philosophy of my practice of medicine.


text:
Noctua atlantica é uma espécie de insetos lepidópteros, mais especificamente de traças, pertencente à família Noctuidae.

A autoridade científica da espécie é Warren, tendo sido descrita no ano de 1905.

Trata-se de uma espécie presente no território português.

Referências

Ligações externas
 Noctua atlantica - Biodiversity Heritage Library - Bibliografia
 Noctua atlantica - NCBI Taxonomy Database
 Noctua atlantica - Global Biodiversity Information Facility
 Noctua atlantica - Encyclopedia of Life

Lepidópteros de Portugal
atlantica
Lepidópteros descritos em 1905


text:
using namespace std::string_literals;

namespace element
{

Parser::Parser(Logger& logger)
: mLogger(logger)
, mLexer(logger)
{
}

std::unique_ptr<ast::FunctionNode> Parser::Parse(std::istream& input)
{
	mLexer.SetInputStream(input);
	mLexer.GetNextToken();

	std::vector<ast::Node*> expressions;

	ast::Node* node = ParseExpression();

	while( node )
	{
		expressions.push_back(node);
		node = ParseExpression();
	}

	if( mLogger.HasErrorMessages() )
	{
		for( const auto& expression : expressions )
			delete expression;

		return nullptr;
	}

	ast::Node* body = nullptr;

	if( expressions.size() == 1 )
		body = expressions.front();
	else // zero or more than one expressions form a block
		body = new ast::BlockNode(expressions, SourceCoords());

	// return the global "main" function
	return std::make_unique<ast::FunctionNode>(std::vector<std::string>(), body, SourceCoords());
}

ast::Node* Parser::ParseExpression()
{
	Token prevToken		= T_InvalidToken;
	Token currentToken	= mLexer.GetCurrentToken();

	// Check for left over expression termination symbols
	while( currentToken == T_NewLine || currentToken == T_Semicolumn )
		currentToken = mLexer.GetNextToken_IgnoreNewLine(); // eat \n or ;

	if( currentToken == T_EOF )
		return nullptr;

	// https://www.engr.mun.ca/~theo/Misc/exp_parsing.htm
	// https://en.wikipedia.org/wiki/Shunting-yard_algorithm
	std::vector<Operator>	operators;
	std::vector<ast::Node*>	operands;

	operators.push_back({T_InvalidToken, -1, ET_UnaryOperator, nullptr}); // sentinel
	SourceCoords	coords;
	ExpressionType	expressionType = ET_Unknown;

	bool primaryExpected = false;

	do // the actual parsing
	{
		primaryExpected = false;
		coords			= mLexer.GetCurrentCoords();
		expressionType	= CurrentExpressionType(prevToken, currentToken);

		switch( expressionType )
		{
		case ET_BinaryOperator:
		case ET_UnaryOperator:
		{
			const OperatorInfo& op = GetOperatorInfo(currentToken, expressionType == ET_BinaryOperator);

			while( 	(op.precedence < operators.back().precedence) ||
					(op.precedence == operators.back().precedence && !op.isRightAssociative) )
			{
				FoldOperatorStacks(operators, operands);
			}

			operators.push_back({
				currentToken,
				op.precedence,
				expressionType,
				nullptr,
				coords
			});

			primaryExpected = true;
			mLexer.GetNextToken_IgnoreNewLine();
			break;
		}

		case ET_IndexOperator:
		{
			const OperatorInfo& op = GetOperatorInfo(currentToken, false);

			while( 	(op.precedence < operators.back().precedence) ||
					(op.precedence == operators.back().precedence && !op.isRightAssociative) )
			{
				FoldOperatorStacks(operators, operands);
			}

			ast::Node* auxNode = ParseIndexOperator();

			if( ! auxNode ) // propagate error
			{
				for( ast::Node* trash : operands )
					delete trash;
				return nullptr;
			}

			operators.push_back({
				currentToken,
				op.precedence,
				expressionType,
				auxNode,
				coords
			});
			break;
		}

		case ET_FunctionCall:
		{
			const OperatorInfo& op = GetOperatorInfo(currentToken, false);

			while( 	(op.precedence < operators.back().precedence) ||
					(op.precedence == operators.back().precedence && !op.isRightAssociative) )
			{
				FoldOperatorStacks(operators, operands);
			}

			ast::Node* auxNode = ParseArguments();

			if( ! auxNode ) // propagate error
			{
				for( ast::Node* trash : operands )
					delete trash;
				return nullptr;
			}

			operators.push_back({
				currentToken,
				op.precedence,
				expressionType,
				auxNode,
				coords
			});
			break;
		}

		case ET_FunctionAssignment:
		{
			const OperatorInfo& op = GetOperatorInfo(currentToken, true);

			while( 	(op.precedence < operators.back().precedence) ||
					(op.precedence == operators.back().precedence && !op.isRightAssociative) )
			{
				FoldOperatorStacks(operators, operands);
			}

			ast::Node* auxNode = ParseFunction();

			if( ! auxNode ) // propagate error
			{
				for( ast::Node* trash : operands )
					delete trash;
				return nullptr;
			};

			operators.push_back({
				currentToken,
				op.precedence,
				expressionType,
				auxNode,
				coords
			});
			break;
		}

		case ET_PrimaryExpression:
		{
			ast::Node* node = ParsePrimary();

			if( ! node ) // propagate error
			{
				for( ast::Node* trash : operands )
					delete trash;
				return nullptr;
			}

			operands.push_back( node );
			break;
		}

		case ET_Unknown:
		default:
		{
			mLogger.PushError(coords, "Syntax error: operator expected");
			for( ast::Node* trash : operands )
				delete trash;
			return nullptr;
		}
		}

		prevToken	= currentToken;
		currentToken= mLexer.GetCurrentToken();
	}
	while( !IsExpressionTerminator(currentToken) || primaryExpected );

	// no more of this expression, fold everything to a single node
	while(	operands.size() > 1 || // last thing left is the result
			operators.size() > 1 ) // parse all, leave only the sentinel
	{
		FoldOperatorStacks(operators, operands);
	}

	return operands.back();
}

ast::Node* Parser::ParsePrimary()
{
	switch( mLexer.GetCurrentToken() )
	{
	case T_Nil:
	case T_Integer:
	case T_Float:
	case T_String:
	case T_Bool:
		return ParsePrimitive();

	case T_This:
	case T_Argument:
	case T_ArgumentList:
	case T_Identifier:
	case T_Underscore:
		return ParseVarialbe();

	case T_LeftParent:
		return ParseParenthesis();

	case T_LeftBrace:
		return ParseBlock();

	case T_LeftBracket:
		return ParseArrayOrObject();

	case T_Column:
	case T_DoubleColumn:
		return ParseFunction();

	case T_If:
		return ParseIf();

	case T_While:
		return ParseWhile();

	case T_For:
		return ParseFor();

	case T_Return:
	case T_Break:
	case T_Continue:
	case T_Yield:
		return ParseControlExpression();

	default:
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: unexpected token "s + TokenAsString(mLexer.GetCurrentToken()));
		return nullptr;
	}
}

ast::Node* Parser::ParsePrimitive()
{
	SourceCoords coords = mLexer.GetCurrentCoords();

	switch( mLexer.GetCurrentToken() )
	{
	case T_Nil:
		{
			mLexer.GetNextToken(); // eat nil
			return new ast::Node(ast::Node::N_Nil, coords);
		}
	case T_Integer:
		{
			int i = mLexer.GetLastInteger();
			mLexer.GetNextToken(); // eat integer
			return new ast::IntegerNode(i, coords);
		}
	case T_Float:
		{
			float f = mLexer.GetLastFloat();
			mLexer.GetNextToken(); // eat float
			return new ast::FloatNode(f, coords);
		}
	case T_String:
		{
			std::string s = mLexer.GetLastString();
			mLexer.GetNextToken(); // eat string
			return new ast::StringNode(s, coords);
		}
	case T_Bool:
		{
			bool b = mLexer.GetLastBool();
			mLexer.GetNextToken(); // eat bool
			return new ast::BoolNode(b, coords);
		}
	default:
		mLogger.PushError(coords, "Syntax error: unexpected token "s + TokenAsString(mLexer.GetCurrentToken()));
		return nullptr;
	}
}

ast::Node* Parser::ParseVarialbe()
{
	SourceCoords coords = mLexer.GetCurrentCoords();

	switch( mLexer.GetCurrentToken() )
	{
	case T_This:
		{
			mLexer.GetNextToken(); // eat this
			return new ast::VariableNode(ast::VariableNode::V_This, coords);
		}
	case T_Argument:
		{
			int n = mLexer.GetLastArgumentIndex();
			mLexer.GetNextToken(); // eat $
			return new ast::VariableNode(n, coords);
		}
	case T_ArgumentList:
		{
			mLexer.GetNextToken(); // eat $$
			return new ast::VariableNode(ast::VariableNode::V_ArgumentList, coords);
		}
	case T_Underscore:
		{
			mLexer.GetNextToken(); // eat _
			return new ast::VariableNode(ast::VariableNode::V_Underscore, coords);
		}
	case T_Identifier:
		{
			std::string s = mLexer.GetLastIdentifier();
			mLexer.GetNextToken(); // eat identifier
			return new ast::VariableNode(s, coords);
		}
	default:
		mLogger.PushError(coords, "Syntax error: unexpected token "s + TokenAsString(mLexer.GetCurrentToken()));
		return nullptr;
	}
}

ast::Node* Parser::ParseParenthesis()
{
	mLexer.GetNextToken_IgnoreNewLine(); // eat (

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		return nullptr;
	}

	ast::Node* node = ParseExpression();

	if( ! node )
		return nullptr;

	if( mLexer.GetCurrentToken() != T_RightParent )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected )");
		delete node;
		return nullptr;
	}

	mLexer.GetNextToken(); // eat )

	return node;
}

ast::Node* Parser::ParseIndexOperator()
{
	mLexer.GetNextToken_IgnoreNewLine(); // eat [

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		return nullptr;
	}

	ast::Node* node = ParseExpression();

	if( ! node )
		return nullptr;

	if( mLexer.GetCurrentToken() != T_RightBracket )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected ]");
		delete node;
		return nullptr;
	}

	mLexer.GetNextToken(); // eat ]

	return node;
}

ast::Node* Parser::ParseBlock()
{
	SourceCoords coords = mLexer.GetCurrentCoords();

	mLexer.GetNextToken_IgnoreNewLine(); // eat {

	std::vector<ast::Node*> nodes;

	while( mLexer.GetCurrentToken() != T_RightBrace )
	{
		ast::Node* node = ParseExpression();

		if( ! node )
		{
			if( ! mLogger.HasErrorMessages() )
				mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");

			for( ast::Node* trash : nodes )
				delete trash;
			return nullptr;
		}

		nodes.push_back( node );

		// Check for left over expression termination symbols
		Token token = mLexer.GetCurrentToken();
		while( token == T_NewLine || token == T_Semicolumn )
			token = mLexer.GetNextToken_IgnoreNewLine(); // eat \n or ;
	}

	mLexer.GetNextToken(); // eat }

	return new ast::BlockNode(nodes, coords);
}

ast::Node* Parser::ParseFunction()
{
	SourceCoords coords = mLexer.GetCurrentCoords();
	std::vector<std::string> namedParameters;

	if( mLexer.GetCurrentToken() == T_DoubleColumn )
	{
		mLexer.GetNextToken_IgnoreNewLine(); // eat ::
	}
	else if( mLexer.GetCurrentToken() == T_Column )
	{
		mLexer.GetNextToken_IgnoreNewLine(); // eat :

		if( mLexer.GetCurrentToken() != T_LeftParent )
		{
			mLogger.PushError(coords, "Syntax error: expected (");
			return nullptr;
		}

		mLexer.GetNextToken_IgnoreNewLine(); // eat (

		while( mLexer.GetCurrentToken() != T_RightParent )
		{
			if( mLexer.GetCurrentToken() != T_Identifier )
			{
				mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: identifier expected");
				return nullptr;
			}

			namedParameters.push_back( mLexer.GetLastIdentifier() );

			Token token = mLexer.GetNextToken_IgnoreNewLine(); // eat identifier

			if( token == T_Comma )
			{
				mLexer.GetNextToken_IgnoreNewLine(); // eat ,
			}
			else if( token != T_RightParent )
			{
				mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected , or )");
				return nullptr;
			}
		}

		mLexer.GetNextToken_IgnoreNewLine(); // eat )
	}

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		return nullptr;
	}

	ast::Node* body = ParseExpression();

	if( ! body )
		return nullptr;

	return new ast::FunctionNode(namedParameters, body, coords);
}

ast::Node* Parser::ParseArguments()
{
	SourceCoords coords = mLexer.GetCurrentCoords();
	mLexer.GetNextToken_IgnoreNewLine(); // eat (

	std::vector<ast::Node*> arguments;

	while( mLexer.GetCurrentToken() != T_RightParent )
	{
		if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
		{
			mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
			for( ast::Node* trash : arguments )
				delete trash;
			return nullptr;
		}

		ast::Node* argument = ParseExpression();

		if( ! argument )
		{
			for( ast::Node* trash : arguments )
				delete trash;
			return nullptr;
		}

		arguments.push_back( argument );

		if( mLexer.GetCurrentToken() == T_NewLine )
			mLexer.GetNextToken_IgnoreNewLine(); // eat \n

		if( mLexer.GetCurrentToken() == T_Comma )
		{
			mLexer.GetNextToken_IgnoreNewLine(); // eat ,
		}
		else if( mLexer.GetCurrentToken() != T_RightParent )
		{
			mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected )");
			for( ast::Node* trash : arguments )
				delete trash;
			return nullptr;
		}
	}

	mLexer.GetNextToken(); // eat )

	return new ast::ArgumentsNode(arguments, coords);
}

ast::Node* Parser::ParseArrayOrObject()
{
	SourceCoords coords = mLexer.GetCurrentCoords();
	mLexer.GetNextToken_IgnoreNewLine(); // eat [

	// check for empty object literal [=] //////////////////////////////////////
	if( mLexer.GetCurrentToken() == T_Assignment )
	{
		mLexer.GetNextToken_IgnoreNewLine(); // eat =

		if( mLexer.GetCurrentToken() == T_RightBracket )
		{
			mLexer.GetNextToken(); // eat ]
			return new ast::ObjectNode(coords);
		}
		else
		{
			mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
			return nullptr;
		}
	}

	// otherwise it could be either an array or an object with members /////////
	auto IsAssignmentOperator = [](const ast::Node* n)
	{
		return	n->type == ast::Node::N_BinaryOperator &&
				((ast::BinaryOperatorNode*)n)->op == T_Assignment;
	};

	bool firstExpression= true;
	bool isObject		= false;

	std::vector<ast::Node*> keys;
	std::vector<ast::Node*> elements;

	while( mLexer.GetCurrentToken() != T_RightBracket )
	{
		if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
		{
			mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
			for( ast::Node* trash : keys )		delete trash;
			for( ast::Node* trash : elements )	delete trash;
			return nullptr;
		}

		ast::Node* element = ParseExpression();

		if( ! element )
		{
			for( ast::Node* trash : keys )		delete trash;
			for( ast::Node* trash : elements )	delete trash;
			return nullptr;
		}

		if( firstExpression )
		{
			isObject = IsAssignmentOperator(element);
			firstExpression = false;
		}
		else if( isObject != IsAssignmentOperator(element) )
		{
			mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: mixing together syntax for arrays and objects");
			for( ast::Node* trash : keys )		delete trash;
			for( ast::Node* trash : elements )	delete trash;
			return nullptr;
		}

		if( isObject )
		{
			ast::BinaryOperatorNode* node = (ast::BinaryOperatorNode*)element;
			keys.push_back( node->lhs );
			elements.push_back( node->rhs );
		}
		else
		{
			elements.push_back( element );
		}

		Token trailingToken = mLexer.GetCurrentToken();
		while( trailingToken == T_NewLine )
			trailingToken = mLexer.GetNextToken_IgnoreNewLine(); // eat \n

		if( trailingToken == T_Comma )
		{
			mLexer.GetNextToken_IgnoreNewLine(); // eat ,
		}
		else if( trailingToken != T_RightBracket )
		{
			mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected, elements should be separated by commas");
			for( ast::Node* trash : keys )		delete trash;
			for( ast::Node* trash : elements )	delete trash;
			return nullptr;
		}
	}

	mLexer.GetNextToken(); // eat ]

	if( isObject )
	{
		size_t size = elements.size();

		ast::ObjectNode::KeyValuePairs pairs;
		pairs.reserve(size);

		for( size_t i = 0; i < size; ++i )
			pairs.push_back(std::make_pair(keys[i], elements[i]));

		return new ast::ObjectNode(pairs, coords);
	}
	else
	{
		return new ast::ArrayNode(elements, coords);
	}
}

ast::Node* Parser::ParseIf()
{
	SourceCoords coords = mLexer.GetCurrentCoords();
	mLexer.GetNextToken_IgnoreNewLine(); // eat if

	if( mLexer.GetCurrentToken() != T_LeftParent )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected (");
		return nullptr; // Syntax error
	}

	mLexer.GetNextToken_IgnoreNewLine(); // eat (

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		return nullptr;
	}

	ast::Node* condition = ParseExpression();

	if( ! condition )
		return nullptr;

	if( mLexer.GetCurrentToken() != T_RightParent )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected )");
		delete condition;
		return nullptr; // Syntax error
	}

	mLexer.GetNextToken_IgnoreNewLine(); // eat )

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		delete condition;
		return nullptr;
	}

	ast::Node* thenPath = ParseExpression();

	if( ! thenPath ) // propagate error
	{
		delete condition;
		return nullptr;
	}

	ast::Node* elsePath = nullptr;

	// HACK ////////////////////////////////////////////////////////////////////
	// we need to check if there will be an 'else' clause, but it may be after
	// the new line, so we have to eat it. This is troublesome because later the
	// 'ParseExpression' function will not know to terminate the expression.
	// To prevent this we will "rewind" the lexer input back to its original state.
	bool shouldRewind = true;
	if( mLexer.GetCurrentToken() == T_NewLine )
		mLexer.GetNextToken_IgnoreNewLine(); // eat \n

	if( mLexer.GetCurrentToken() == T_Elif )
	{
		elsePath = ParseIf();

		if( ! elsePath )
		{
			delete condition;
			delete thenPath;
			return nullptr;
		}

		shouldRewind = false;
	}
	else if( mLexer.GetCurrentToken() == T_Else )
	{
		mLexer.GetNextToken_IgnoreNewLine(); // eat else

		if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
		{
			mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
			delete condition;
			delete thenPath;
			return nullptr;
		}

		elsePath = ParseExpression();

		if( ! elsePath )
		{
			delete condition;
			delete thenPath;
			return nullptr;
		}

		shouldRewind = false;
	}

	if( shouldRewind )
		mLexer.RewindDueToMissingElse();

	return new ast::IfNode(condition, thenPath, elsePath, coords);
}

ast::Node* Parser::ParseWhile()
{
	SourceCoords coords = mLexer.GetCurrentCoords();
	mLexer.GetNextToken_IgnoreNewLine(); // eat while

	if( mLexer.GetCurrentToken() != T_LeftParent )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected (");
		return nullptr;
	}

	mLexer.GetNextToken_IgnoreNewLine(); // eat (

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		return nullptr;
	}

	ast::Node* condition = ParseExpression();

	if( ! condition )
		return nullptr;

	if( mLexer.GetCurrentToken() != T_RightParent )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected )");
		delete condition;
		return nullptr;
	}

	mLexer.GetNextToken_IgnoreNewLine(); // eat )

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		delete condition;
		return nullptr;
	}

	ast::Node* body = ParseExpression();

	if( ! body ) // propagate error
	{
		delete condition;
		return nullptr;
	}

	return new ast::WhileNode(condition, body, coords);
}

ast::Node* Parser::ParseFor()
{
	SourceCoords coords = mLexer.GetCurrentCoords();
	mLexer.GetNextToken_IgnoreNewLine(); // eat for

	if( mLexer.GetCurrentToken() != T_LeftParent )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected (");
		return nullptr;
	}

	mLexer.GetNextToken_IgnoreNewLine(); // eat (

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		return nullptr;
	}

	ast::Node* iteratorVariable = ParseExpression();

	if( ! iteratorVariable )
		return nullptr;

	if( mLexer.GetCurrentToken() != T_In )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected 'in'");
		delete iteratorVariable;
		return nullptr;
	}

	mLexer.GetNextToken_IgnoreNewLine(); // eat in

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		delete iteratorVariable;
		return nullptr;
	}

	ast::Node* iteratedExpression = ParseExpression();

	if( ! iteratedExpression )
	{
		delete iteratorVariable;
		return nullptr;
	}

	if( mLexer.GetCurrentToken() != T_RightParent )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expected )");
		delete iteratorVariable;
		delete iteratedExpression;
		return nullptr;
	}

	mLexer.GetNextToken_IgnoreNewLine(); // eat )

	if( IsExpressionTerminator(mLexer.GetCurrentToken()) )
	{
		mLogger.PushError(mLexer.GetCurrentCoords(), "Syntax error: expression expected");
		delete iteratorVariable;
		delete iteratedExpression;
		return nullptr;
	}

	ast::Node* body = ParseExpression();

	if( ! body ) // propagate error
	{
		delete iteratorVariable;
		delete iteratedExpression;
		return nullptr;
	}

	return new ast::ForNode(iteratorVariable, iteratedExpression, body, coords);
}

ast::Node* Parser::ParseControlExpression()
{
	SourceCoords coords = mLexer.GetCurrentCoords();
	Token controlType = mLexer.GetCurrentToken();

	Token token = mLexer.GetNextToken(); // eat the control expression

	ast::Node* value = nullptr;

	if( ! IsExpressionTerminator(token) )
	{
		value = ParseExpression();

		if( ! value ) // propagate error
			return nullptr;
	}

	switch( controlType )
	{
	case T_Return:	return new ast::ReturnNode	(value, coords);
	case T_Break:	return new ast::BreakNode	(value, coords);
	case T_Continue:return new ast::ContinueNode(value, coords);
	case T_Yield:	return new ast::YieldNode	(value, coords);
	default:
		delete value;
		return nullptr;
	}
}

Parser::ExpressionType Parser::CurrentExpressionType(Token prevToken, Token token) const
{
	static const Token operators[] = {
		T_Add, T_Subtract, T_Divide, T_Multiply, T_Power, T_Modulo, T_Concatenate,
		T_Assignment,
		T_AssignAdd, T_AssignSubtract, T_AssignDivide, T_AssignMultiply,
		T_AssignPower, T_AssignModulo, T_AssignConcatenate,
		T_Dot, T_Arrow, T_ArrayPushBack, T_ArrayPopBack,
		T_Equal, T_NotEqual, T_Less, T_Greater, T_LessEqual, T_GreaterEqual,
		T_And, T_Or, T_Xor, T_Not, T_SizeOf,
	};

	auto isOperator = [&](const Token t) -> bool
	{
		for( const Token o : operators )
			if( t == o )
				return true;
		return false;
	};

	static const Token unaryOperators[] = {
		T_Not, T_SizeOf, T_Subtract, T_Add, T_Concatenate,
	};

	auto isUnaryOperator = [&](const Token t) -> bool
	{
		for( const Token o : unaryOperators )
			if( t == o )
				return true;
		return false;
	};

	// weird logic follows...

	if( prevToken == T_InvalidToken ) // no previous token
	{
		if( isUnaryOperator(token) )
			return ET_UnaryOperator;
		else
			return ET_PrimaryExpression;
	}
	else
	{
		if( isOperator(prevToken) )
		{
			if( isUnaryOperator(token) )
				return ET_UnaryOperator;
			else
				return ET_PrimaryExpression;
		}
		else
		{
			if(	token == T_LeftBracket )
				return ET_IndexOperator;

			if(	token == T_LeftParent )
				return ET_FunctionCall;

			if(	token == T_Column || token == T_DoubleColumn )
				return ET_FunctionAssignment;

			if( isOperator(token) && token != T_Not && token != T_SizeOf )
				return ET_BinaryOperator;
		}
	}

	return ET_Unknown;
}

void Parser::FoldOperatorStacks(std::vector<Operator>& operators, std::vector<ast::Node*>& operands) const
{
	ast::Node* newNode = nullptr;

	Operator topOperator = operators.back();
	operators.pop_back();

	switch( topOperator.type )
	{
	case ET_BinaryOperator:
		{
			ast::Node* rhs = operands.back();
			operands.pop_back();
			ast::Node* lhs = operands.back();
			operands.pop_back();

			newNode = new ast::BinaryOperatorNode(topOperator.token, lhs, rhs, topOperator.coords);
			break;
		}

	case ET_UnaryOperator:
		{
			ast::Node* operand = operands.back();
			operands.pop_back();

			newNode = new ast::UnaryOperatorNode(topOperator.token, operand, topOperator.coords);
			break;
		}

	case ET_IndexOperator:
		{
			ast::Node* operand = operands.back();
			operands.pop_back();

			newNode = new ast::BinaryOperatorNode(topOperator.token, operand, topOperator.auxNode, topOperator.coords);
			break;
		}

	case ET_FunctionCall:
		{
			ast::Node* function = operands.back();
			operands.pop_back();

			newNode = new ast::FunctionCallNode(function, topOperator.auxNode, topOperator.coords);
			break;
		}

	case ET_FunctionAssignment:
		{
			ast::Node* lhs = operands.back();
			operands.pop_back();

			newNode = new ast::BinaryOperatorNode(T_Assignment, lhs, topOperator.auxNode, topOperator.coords);
			break;
		}
	default:
		break;
	}

	operands.push_back(newNode);
}

bool Parser::IsExpressionTerminator(Token token) const
{
	return 	token == T_NewLine		||
			token == T_Semicolumn	||
			token == T_Comma		||
			token == T_RightParent	||
			token == T_RightBracket	||
			token == T_RightBrace	||
			token == T_Else			||
			token == T_Elif			||
			token == T_In			||
			token == T_EOF;
}

}

redpajama_set_name: RedPajamaGithub


text:
Mórgoth Bauglir, inicialment conegut com a Mélkor, és un personatge fictici de l'univers de J.R.R. Tolkien, la Terra Mitjana. Mórgoth és un personatge del mateix ordre que els Vàlar, que des del principi dels temps es va corrompre i es va convertir en el primer Senyor Fosc.

En l'obra de Tolkien, Mórgoth apareix tan sols en persona a El Silmaríl·lion, però tanmateix té una influència crucial en les obres posteriors. Per exemple, el Senyor Fosc Sàuron, també conegut com El Senyor dels Anells, havia estat un servent seu.

Nom
Quan era considerat com un Vàlar, era conegut com a Mélkor. Tanmateix, després que es corrompés i comencés a combatre contra els pobles d'Arda, els elfs nóldor el coneixen com Mórgoth Bauglir.

Mórgoth es pot traduir com "Enemic fosc", o "Foscor Abominable" (arrels MOR: negre, fosc, ombra; i GOS/GOTH: Abominació, Terror), i Bauglir és equivalent a "Tirà" o "Opressor" (arrel MBAW: obligar, forçar, oprimir).

Història
Abans de la creació d'Arda, Mélkor era el més poderós dels Ainur. Cada Ainur tenia els seus propis "talents", però Mólkor en dominava molts. Com un nen precoç arrogant, va competir amb Eru (també conegut com L'Únic o Il·lúvatar, el pare de tots) en la Música dels Ainur. Mélkor estava gelós del seu pare i volia crear i governar per si mateix. Va passar molt de temps intentant trobar el Foc Secret, sense entendre que aquesta era una qualitat exclusiva d'Eru i que només s'hi podia arribar a través d'Ell.

Durant la seva recerca del Foc Secret es va apartar d'Eru i els altres Ainur i els seus pensaments van anar distanciant-se cada cop més de l'harmonia amb els seus. Durant la Gran Música dels Ainur, Mélkor va intentar alterar el tema i introduir-hi el que ell creia eren elements propis. Formant part d'aquests esforços, va aconseguir que el seguissin molts dels Ainur amb menys voluntat, creant un 'contra-tema' al tema principal d'Eru; però, en realitat, per ser un ésser creat, Mélkor no podia crear i l'única cosa que podia fer era descobrir o imitar. La música que feia era 'sorollosa' i 'vanitosa', i, frustrat pel seu fracàs de superar la música d'Eru, va intentar pervertir-ne l'harmonia, fent malbé tot el que no podia dominar, corrompent tota la Música.

Irònicament, els intents de Mélkor no subvertien realment la Música, sinó que la feien més complexa: la música pròpia d'Eru guanyava en profunditat i en bellesa en contrast amb les tristes dissonàncies de Mélkor. Per exemple, quan l'Ainu Ulmo canta a l'aigua, Mélkor vol destruir-la, ja que l'aigua no era la seva creació ni podia controlar-la. Va afegir a l'aigua un fred extrem i una calor extrema, però el seu vandalisme no va destruir l'aigua, sinó que sense voler va originar la bellesa dels núvols, la pluja, la boira, la neu o el gel.

Referències

Vàlar


text:
Asparagus stipulaceus är en sparrisväxtart som beskrevs av Jean-Baptiste de Lamarck. Asparagus stipulaceus ingår i släktet sparrisar, och familjen sparrisväxter. Inga underarter finns listade i Catalogue of Life.

Källor

Externa länkar

Sparrisar
stipulaceus


text:
Q: General solution of a differential equation $x''+{a^2}x+b^2x^2=0$ How do you derive the general solution of this equation:$$x''+{a^2}x+b^2x^2=0$$where a and b are constants.
Please help me to derive solution thanks a lot.

A: First make the substitution:
$x=-\,{\frac {6y}{{b}^{2}}}-\,{\frac {{a}^{2}}{{2b}^{2}}}$
This will give you the differential equation:
$y^{''} =6y^{2}-\frac{a^{4}}{24}$ which is to be compared with the second order differential equation for the Weierstrass elliptic function ${\wp}(t-\tau_{0},g_2,g_3)$:
${\wp}^{''} =6{\wp}^{2}-\frac{g_{2}}{2}$
Where $g_{2}$, $g_3$ are known as elliptic invariants. It then follows that the solution is given by:
$y={\wp}(t-\tau_{0},\frac{a^{4}}{12},g_3)$
$x=\,-{\frac {6}{{b}^{2}}}{\wp}(t-\tau_{0},\frac{a^{4}}{12},g_3)-\,{\frac {{a}^{2}}{{2b}^{2}}}$
Where $\tau_0$ and $g_3$ are constants determined by the initial conditions and $t$ is the function variable.

A: Note that the derivative of $(x')^2$ (respectively, $x^2$, $x^3$) is $2x'x''$ (respectively, $2xx'$, $3x^2x'$). Multiplying by $6x'$, we get $$(3)(2x'x'')+(3a^2)(2xx')+(2b^2)(3x^2x')=0$$ and integrating $$3(x')^2+3a^2x^2+2b^2x^3=C$$ Then $x'=\sqrt{C-3a^2x^2-2b^2x^3}/3$, which is variables-separable. But the integral it leads to is not elementary; as Graham notes, it leads to elliptic functions.


text:
Reassuringly Delusional
Posted on August 26, 2020 December 25, 2020 by George Tsakraklides
It is perhaps the most bizarre feature in the Earth's landscape. A straight line out in the far distance, which almost looks like the edge of a Hollywood set. It is where the props have probably ran out, and all that you see is the line where the wall meets the floor. We call it the horizon.
Despite all the hopes and expectations it raises, the horizon always leaves much to be desired. Its enigmatic minimalism leaves it looking as empty as a blank line on an author's notebook, waiting to be written. It is where the Earth has ran out of things to say. It would make sense after all that the world, as we know it, would end somewhere, sometime.
In fact this was what I thought as a child. Growing up in a seaside town it was impossible to ignore the big mysterious horizontal line in the distance. It was always there beyond the bay, staring back at me. I always thought that beyond it there was just emptiness. I sometimes felt I was living at the very edge of the world, the last town on Earth, much like the Ancient Greeks for whom anything beyond the Mediterranean was their equivalent to our Outer Space. Or humans as recently as a few hundred years ago who imagined huge waterfalls just beyond the horizon, which was where the flat Earth obviously ended.
But myths, fears and enigmas about the horizon soon gave way to bold ambition and exploration, as humans realised that the big straight line was not an infinity trap or an end, but a gateway to other lands. Colonialism became not only a socioeconomic phenomenon, but a dogma of infinite economic growth and exploitation. To the colonialists and conquistadors, the horizon was in fact endless, giving them the illusion that Earth's resources are endless as well.
It turns out, as we know, that they were just going around in endless circles across the Seven Seas. The horizon does give the illusion of infinity, when you are sailing on a convex ocean. The Earth looks vast when you can only see a few miles ahead of you, shrouded in a fog of ignorance and denial. The unknown can be reassuringly delusional, delusionally reassuring.
So we've gone from original fear of the horizon to colonialist excitement, to today's realisation that the Earth is in fact finite, that we are indeed all living in a tiny Hollywood set. Throughout our history we have been quick to make stories about the unknown, and ignoring the known, ignoring the science. Ignoring that this is a tiny planet. That someone has pissed on the corner of the cardboard Hollywood set. And that this sitcom is approaching its finale.
(From the book Photographic Heart)
George is a chemist, molecular biologist and food scientist. You can follow him on Twitter @99blackbaloons , join his mailing list, or read his books:
← The Carbon Universe
My America →
3 thoughts on "Reassuringly Delusional"
Noeline Torrey says:
When you reflect back to early horizons from childhood and the concept of object permanence which an infant explores, there are moments in life as an adult, when yo escape a known boundaried space to explore new horizons. Mine was flying out of New Zealand to Hawaii. I looked out of the plane window and felt myself leaving my childhood, early formative memories and felt exhilaration,
Thank you for bringing those early memories back to me fiftyfive years later!
George Tsakraklides says:
Glad I did that!
I like how this piece makes a complete circle by including all facets, particularly the importance of science.


text:
Luboš Ilizi (Nyitra, 1982. október 13. –) szlovák labdarúgó.

Pályafutása
Luboš Ilizi 1982-ben született Nyitra városában, akkor még Csehszlovákia területén és a labdarúgó pályafutását is a helyi FC Nitra csapatánál kezdte. 1998-ban a Nagyszombat csapatához, az FC Spartak Trnavához igazolt el, ahol 2001-ben került fel a felnőtt első kerethez. Ezt követően rövid ideig az FK Púchov igazolt kapusa volt, majd 2006 októberében az cseh FC Viktoria Plzeň alkalmazásába került. Eleinte számítottak a játékára és később, a 2008–2009-es kiírásra a másodosztályú FK Baník Sokolov vette kölcsön. Miután visszatért nem kapott lehetőséget.

2011 júliusában a magyar élvonalbeli Vasas szerződtette. Debütálására július 23-án, az NB I második fordulójában került sor a Pécsi MFC elleni 1–2-es vereséggel záródó összecsapáson hazai pályán. A szezon végéig kezdő maradt, utolsó találkozóján a csapatkapitányi karszalagot is viselhette a Diósgyőr elleni 3–2-re elvesztett bajnokin. Az évad végén a Vasas a 15. helyen kiesett az első osztályból. 2013 áprilisában a Soproni VSE-hez igazolt. Itt csupán négy hivatalos mérkőzése volt a az NB II – Nyugati csoportjában.

2015 januárjában talált újra klubot, a cseh második vonalban szereplő 1. SC Znojmo FK személyében, ahol állandó kezdőként volt pályán. 2015 júliusában visszatért Magyarországra, az évonalbéli Békéscsaba gárdájához. Cserekapusként 7 mérkőzésen kapott szerepet és félévkor távozott a klubtól. 2016 januárjában vonult vissza a profi labdarúgástól.

Statisztikái

Klubcsapatokban

Sikerei, díjai
 Viktoria Plzeň
 Cseh bajnok: 2010–11

Jegyzetek

Források
 Luboš Ilizi oldala a Transfermarkt.com-on

Nyitrai sportolók
Szlovák labdarúgók
1982-ben született személyek
Élő személyek


NECTAR Sleep Mattress Review – Casper Mattress Podcast | Your Best Sleep Now!
In both Television shows and also Films, there's a subject that has executed very well during the past decade: Zombies. This idea has made for a handful of really exciting, majorly excellent, and also award-winning shows and blockbusters. But nevertheless it's just fiction, right?
When you have lived for almost any time, it's no doubt you have heard an individual show you how key sleep is. It's very likely that you've come to realize this lesson for yourself, and also it's also likely that you've found out from many people who definitely have understood it as well. Without sleeping, we feel like… well, zombies.
As if feeling worn-down isn't already an abundance of of a tribulation, there's a bit more to the narrative. When we have been suffering from sleep deprivation, our brain pretty much malfunctions. That simply signifies that our human brain does not operate well. As a matter of fact, our human brain literally begins shutting down certain areas and also functions that are not required for survival. Because of this being lacking sufficient rest is not only a feeling, it is really a physically weakened condition of everyday living.
Helping to make things more intense, extended lack of sleep triggers over production of cortisol. Cortisol in it's exact quantity may help us to feel some tension and urgency to get things carried out. But if it's overproduced, it leads to us to feel stressed, anxious, and uneasy continually. This tends to lead to even deeper medical problems of anxiety and depression. Certainly, lack of sleep is certainly not good for any of us.
We've all had the experience. More often than not, our daily lives require so much from us. We supply vast amounts of our time and energy to our jobs and also vocations, our good friends and family, and also our hobbies and interests and also activities. Quite often, it feels like there can be hardly any left, and it is generally challenging to relax and revitalize.
And yeah, perhaps we could all use a tad bit more uninterrupted sleep. Still, what if we might accomplish much more than sleep longer. Imagine if we could snooze better?
NECTAR is here to help out. And they help out with a straightforward objective. NECTAR declares to be the most comfortable mattress, and that you will get the best sleep of your life, guaranteed. For a company that creates mattresses, it's rather difficult to possess a more crystal clear vision than that.
Maybe you hurt after you get up in the morning. NECTAR addresses this on numerous levels. It begins with applying the current breakthroughs in mattress and also fabric technologies, and bringing those together in a single product. And don't fret about needing to choose precisely what amount of firmness to purchase and hope that you chose rightly. NECTAR has manufactured their mattress to a degree of firmness that stabilize the give and take of your entire body weight whenever you lie in a variety of positions through the night, which creates exactly the right amount of comfort and also support. Allowing you to rest assured (no pun intended) that whichever posture you are lying in, it's the best one.
Still there's a whole lot more to it than that. Perhaps you don't merely feel aching or uncomfortable after you wake. Perhaps your neck, backbone, shoulder muscles, hips, and/or lower limbs hurt. Not any more. Should you lie on your back, NECTAR mattress gives you the proper amount of firmness to support the natural curvature of your spine. Once you lay on your side, you really want your spine to remain in a straight line. Other mattresses are often too firm, so they press against that natural curvature, or perhaps too soft as well as let your spine sink an excessive amount. Either way, the two are incorrect, since your spine is forced one way or the other out of alignment. NECTAR eliminates this issue, and the outcome are just as much of a breakthrough as the design of the mattress itself. NECTAR has definitely refined the level of firmness and support to a breakthrough amount.
We certainly have one other issue that comes along whenever mattresses don't breathe effectively as well: moisture. Any time air flow doesn't circulate in a mattress, it collects moisture from the air that comes in yet is not able to let it out. This dramatically limits the lifespan of a mattress, considering the fact that the accumulated moisture starts to make the materials in the mattress breakdown. Additionally it drastically will reduce the comfort, as a result of the broken down materials used in the mattress do not perform as they ought to. The mattress ends up being uncomfortable, and also stays uncomfortable over its lowered lifespan. What a waste!
NECTAR hasn't simply constructed a breakthrough mattress which supplies incredible comfort. They've at the same time made a high quality mattress that is comprised of solely the ideal materials. You can find no ozone depleters, PDDEs, TDCPP, mercury, or even lead. Not only are they better for you, but for the environment as well. They will be incredibly easily recycled, and earth friendly!
There exist 2 layers of Gel Memory Foam that really help to circulate the air, as well as suitably distribute your weight as well as preserve the natural curve of your body. These two layers are significant assisting features to the issues described above. Whilst you slumber, your quality of sleep is currently being supported by the best quality components in the industry. I assume that could be what occurs when ever your vision is to create the best mattress. Period.
It's quite normal for comfort and also quality to go coincide. However they come with a price tag. Well, in many cases. But certainly not now.
NECTAR offers you comfort in addition to support in line with mattresses that cost you $3,000-5,000+. With that excellence, you might be undoubtedly hoping that they are in fact half that selling price, at around $2,000. Or maybe just you have your fingers crossed merely anticipating that they may be only $1,500. But don't stop reading now. Since you won't even be paying that.
They do not cost $1,500. They don't cost $1,000. Every one of the NECTAR mattresses start in the $300's. And they are all under $1,000, even for a California King! At that price point, any person in your house could sleep far better for the value of just one traditional mattress.
We dwell in a world that is certainly regularly changing. NECTAR is a paradigm shift in the strategy a mattress is designed. The thing is, mattresses have been around years and years. And the same as vehicles and even houses, the way that one is developed these days is different than it was many years ago. Across almost all industries, people are repeatedly studying and also making innovative discoveries. From working on and additionally putting into action fresh materials, to advancing on a model or even establishing a brand new one, the process where we perform things transforms with time.
Traditional mattresses are made up of a set of box spring as well as a mattress. The box springs go underneath the mattress, supplying an extra layer of support to the mattress. The mattress is made using columns of coils all throughout to supply support. Then on top the coils is some sort of "topper". In the old days, this topper was made up of assorted forms of stuffing or cushioning, as well as in more recent times various layers of foam. There are plenty of brands which have been producing mattresses for years such as Serta, Sealy, Jamison, Sleep Number, and also Amerisleep.
Indeed. And they are just as completely new. But nevertheless I'll spare you the details. I will not let you know they are a pillow that is just as innovative as their mattresses. I won't tell you about the quilted memory foam outer shell. As well as I definitely will not inform you of the Tencel cooling fabric together with active ventillation which means that you are always slumbering on the cool side of the pillow. I most certainly will merely say they are superb, and every much a breakthrough in pillows as their mattresses are.
The only option to experience that you enjoy anything is to try it out personally.
Definitely. It's one thing when something seems great on paper or in a commercial, yet it's another to really experience something on your own. And with NECTAR, you are able to. Not only does NECTAR have an extraordinary value, additionally they back it with a wonderful guarantee.
However with NECTAR, the game has entirely totally changed. Because they will deliver it cost free to your house, and you can give it a go for a night. And you can give it a go for a week. And you can try it out for a month. Not to mention 2 months. And even three months. Exactly where am I going with this? With NECTAR, you can test it risk free for a year! You get a 365 night home trial. They deliver it to you for free. If at all you are not 100% pleased, they will come and pick it up for free. Nevertheless I doubt you will need them to.
There is not any catch. There's simply NECTAR. Well, there's far more than that. There is an improved mattress with extraordinary value. There is certainly a new paradigm in making a mattress, with invention at every turn. There is the ease and comfort and support that you simply deserve. There is pillows that increases the comfort from head to toe. There is wonderful quality together with value. There is an incredible product, backed by an extraordinary guarantee. There's an end to the zombie apocalypse.


text:
Q: XPATH Select children of a parent whose sibling matches a condition Given this XML (simplified from the real content):
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://foo.com">
<name>Project Name</name>
<namespace>
    <name>ROOT</name>
    <namespace>
        <name>A</name>
        <namespace>
            <name>AA</name>
            <subject>
                <name>SUBJECT</name>
            </subject>
            <item>
                <name>ITEM_AA1</name>
            </item>
        </namespace>
    </namespace>
    <namespace>
        <name>B</name>
        <namespace>
            <name>BB</name>
            <subject>
                <name>SUBJECT</name>
            </subject>
            <item>
                <name>ITEM_BB1</name>
            </item>
            <item>
                <name>ITEM_BB2</name>
            </item>
        </namespace>
    </namespace>
</namespace>
</project>

I am trying to create an XSL stylesheet to transform text nodes such as ITEM_BB1 and ITEM_BB2 - i.e. item/name/text() nodes which are sub-children of the namespace with a child name element which has the text content B.
I am having trouble figuring out how to make a template which correctly matches those nodes.
I have tried building an expression with ../ and with following-sibling axis, but am not getting it. Here is my WIP stylesheet:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:x="http://foo.com"
    exclude-result-prefixes="x"
    version="1.0" >

    <xsl:output method="xml" indent="yes" encoding="UTF-8"/>

    <xsl:template match="node()|@*">
        <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
    </xsl:template>

    <!-- THIS OPERATES ON THE RIGHT ITEMS AT LEAST, BUT OUT OF CONTEXT -->
    <!--
    <xsl:template match="x:namespace/x:name[text()='B']">
        <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
        <xsl:for-each select="..//x:item/x:name/text()">
            <hello><xsl:value-of select="."/></hello>
        </xsl:for-each>
    </xsl:template>
    -->

    <!-- THIS IS INVALID -->
    <xsl:template match="x:namespace/x:name[text()='B']/..//x:item/x:name/">
        <hello><xsl:value-of select="."/></hello>
    </xsl:template>

</xsl:stylesheet>

My question is how to make a template to match those target nodes?

A: Try this template match, to avoid using the .. expression in the template
<xsl:template match="x:namespace[x:name/text()='B']//x:item/x:name">

This can be slightly simplified to this too...
<xsl:template match="x:namespace[x:name='B']//x:item/x:name">