text:
'Hocus Pocus' Star Vinessa Shaw Weighs in on That Theory About Allison Being a Witch
"It was intentionally implied, for sure," Shaw told TheWrap
Andi Ortiz | September 29, 2022 @ 8:30 AM
In the almost 30 years since "Hocus Pocus" first came out, a fan theory has emerged, and slowly gained steam above all others. The notion is that Allison, Max Dennison's (Omri Katz) love interest in the movie played by Vinessa Shaw, was herself a witch, tasked with protecting Salem with her own good magic. And this year, Shaw is finally giving some clarity on that idea.
The theory first started flying thanks to a scene that Allison and Winifred Sanderson (Bette Midler) share in "Hocus Pocus," in which Allison keeps the witch at bay with her container of salt, after making a circle around herself with it. In response, Winifred calls her "a clever little white witch." If you need a quick refresher, you can watch the moment below:
It's the only time that Allison is explicitly referred to as any sort of witch, so naturally, it's caught the ears of fans more and more with each rewatch. But there are other details that fans have honed in on too, from the party Allison's family hosts, to their ownership of the Sanderson house, all the way to Allison's clothes, that seemingly make the case for her being a witch.
Speaking to TheWrap earlier this year about the evolution of "Hocus Pocus" at large, Shaw just giggled deviously when asked about this theory. But she did have an answer.
"It was intentionally implied, for sure," she said. "Because if you notice the necklace I'm wearing, it can kind of look like — because you don't see it, obviously, when I'm wearing the full ball gown — but later, when I'm just in the normal change of you know, jeans and the turtleneck and the sweater, you can see. And the necklace, it has kind of like a pentagram-looking design with the stones. If you look really closely… it's a gold kind of locket, with white pearls connected to the locket, and it has a kind of design on it that could, if you kind of connected it all together, would have looked like a pentagram. But again, it was never explicit."
Shaw also pointed to the sweater itself, noting that it has a twine of leather threaded through it, which "could mean something like a sort of protective force that I would have on." But Shaw notes that this was all detail and backstory added by the costume designer, not the script itself.
How 'Hocus Pocus' Went From Box Office Bomb to Disney's Halloween Darling
"She said, 'Look at how this twine is through here.' But she mentioned it after she mentioned what the necklace was," Shaw added. "And then she said 'And then look at the twining that's kind of going in through this sort of leather. That's old world.' And it was fleshing out the idea. So she didn't explicitly say like, 'This is a protective kind of item that would be for a person who practices white magic,' but that the necklace was kind of white witchy."
Really, Shaw loves that eagle-eyed fans picked up on these things and put together the theory.
"I love the fans. Can you guys write the next script? This is amazing," she said. "After the sequel comes out, we'll have another one that's just written by the fans. Because I think they're onto something, because it was implied, again, but not explicit to me. It could have been just between the costume designer and [director] Kenny [Ortega] or, you know, there was more, there was like a richer conversation."
For what it's worth, David Kirschner, who created and produced "Hocus Pocus," didn't have this theory in mind when he wrote the story — he hadn't even heard about it until we asked him to confirm or deny that it was intentional. But he definitely enjoys the idea, calling it "so interesting."
"I can deny that I have ever heard of that until this moment," he told TheWrap with a laugh. "I'm unaware of that completely."
You can read the full history of "Hocus Pocus" — and how it came to be the Halloween staple it is today — with more from Shaw and Kirschner here.
'Hocus Pocus 2' Release Date, Cast and Everything We Know So Far


text:
– Lifestyle
– Partnerships
Channel Empathy
Humans of Habitat Singapore
Humans of ISCOS
Humans of Sentosa
Inspiring Creatives of Workbuddy
People of the Arts
People of Legends
The Fourth Trimester
The Prudent People
Stylish People of DeepCuts
The Everyday People of Singapore
TThe Everyday People is an online publication that aims to inform, inspire and connect with the the people of Singapore through powerful people stories and cool lifestyle content..
View EverydayPeopleSG's profile on Facebook
View EverydayPeopleSG's profile on Instagram
View UCVh8nQZkBLiSSGFmydgynqg's profile on YouTube
hello@everydaypeople.sg
© 2023 The Everyday People of Singapore.
Word on the Street: Jason (Beng Who Cooks)
"I developed a passion for cooking when I was about 12 or 13. It started with me liking that feeling when I got praises from my family. Whenever I cooked, my mum and grandma would say my cooking's very nice, and that boosted my ego.
I've always been around the culinary scene. My dad has a fruits and dessert stall, and my mom has been helping him ever since they got married, but I never thought of pursuing a career in cooking back then; I only cooked for leisure.
In school, I actually studied sports science, and during my internship, I worked as a personal trainer at a bodybuilding gym, which was around the same time I picked up boxing. That was when I saw the ugly side to the local gym industry.
The pro bodybuilding scene isn't as clean as what some think it is; many people were taking steroids. I also didn't like how appearance sells. My ex-boss said no one will take me seriously as a personal trainer if I didn't bulk up, even if I had the knowledge and skills.
After I graduated with my diploma, I helped my dad out at his dessert stall for a while. It was the worst time of my life because I was still training as an amatuer boxer back then, so I only had about three hours of sleep each night.
But my boxing training, along with the discipline of waking up early even when I slept late the night before, made me the person I am today. Having that kind of work ethic really helps me now that I'm running Beng Who Cooks, my own food stall at Hong Lim Food Centre.
I came up with Beng Who Cooks when I was still studying at culinary school. I decided to pursue culinary arts after I stopped helping my dad at his stall. For four whole months, I was experimenting with different recipes that I could use for my business.
I chose the name Beng Who Cooks because I grew up with many Malay friends, and they call me 'beng' the same way I call them 'mat'. 'Beng' refers to someone who is rebellious and follows his own rules, and I adopt that mindset in my cooking. It's also just a catchy name.
Because they know how tough the F&B scene is, my parents are not supportive of this business. My girlfriend, who's now my fiancé, wasn't supportive at first either, but now that she's seen how hard I've worked to get to where I am today, she's fully behind me.
I'm working hard not just for me, but also for her. She's working really hard too because we plan to get a house and maybe married in three years' time. If the business does well, maybe we can get married earlier.
Beng Who Cooks just entered its first month of operations. It's not been easy, especially on the first day. Customers came at 10, but I only managed to finish cooking everything at 12.30. Sales was bad and I made a loss. I just felt like shit.
But now, things are falling in place. Surprisingly, feedback from returning customers have been good. And this is honest feedback from members of the public, not just friends.
Yes, I'm very passionate about Beng Who Cooks, but I also know there are risks. This stall is my everything. If it works, it works. If I fall, I'll have to start again from ground zero. This business is not for the strawberry generation, but I'm determined to change the hawker scene, one bowl at a time." – Jason, 27
Beng Who Cooks
Address: 531a Upper Cross Street, #01-44, S051531
Opening Hours: Weekdays: 10am – 7:30pm; Saturday: 10am – 3pm
Co-owned by Muslims
@everydaypeoplesg
In Entrepreneurs, Food and Beverage, People, Vox Pop

redpajama_set_name: RedPajamaCommonCrawl


Usually, when you picture a simulator, it's more likely an air force pilot in training than a haberdashery. But at the Bombay Shirt Company, the signature attention to detail has gone digital.
Since opening in 2012, the Bombay Shirt Company has separated itself from the proverbial high street by offering garments fully customizable to the customer's taste, from collar style to the colour of button stitching. They've always been up to doing house calls too, but with their shiny new gadget, both the indecisive and the lazy may find themselves more willing to make the trip to either one of their Kala Ghoda or Bandra outlets.
After you've chosen your base colour, you'll thumb through your collar options, everything from the hipster to the concealed polo and the spread-eagle to the Madmen. From there you can choose your single, double or buttoned pockets, epaulettes, piping, and style of cuff.
The last step of the simulator is to save your creation, and sensors fit the image to your body, so you have some idea of how you'll look in the finished product, and soon you'll be be able to share with your friends – if any of them want to approve, disapprove or just laugh – straight from the simulator.
"The technology still isn't accurate enough to actually take your measurements at this stage," explains Akshay, but that's what that friendly gentleman who'll now likely be looking over your shoulder is for. It's back to analog for a quick tailor measuring, and your masterpiece will be mailed out to you within two weeks.
And now that they've got your measurements, you're free to call in orders from wherever you want. But you know as well as they do, standing in front of a gigantic screen and performing a nice bit of digital tailoring is just way more fun.


Advantage Trailer will keep your information private and safe.
Advantage Trailer collects the email address of Users that email a question or comment to Advantage Trailer or submit a customer review.
Advantage Trailer collects the billing and shipping addresses, including relevant e-mail, phone and credit card numbers and expiration dates of Users who purchase a product from Advantage Trailer through the Site. This includes Users who register to become Advantage Trailer members or enter any Advantage Trailer contests or other promotional features available on the Site.
Through the use of "cookies" (For more information regarding Cookies, see below), Advantage Trailer may collect and store anonymous information relating to Users' browsing patterns, including, for instance, the User's browser version, site referral information, IP address, operating system, and other technical Site use information.
You may set your Internet Web browser to notify you when you receive a cookie or to prevent cookies from being sent. If you prevent a cookie from being sent, you may limit the functionality Advantage Trailer can provide you when you visit the Site, especially when purchasing an item on the Site.
Provide Users with important functionality changes to the Site, new Advantage Trailer services and special offers we think you will find valuable.
Unless we have your consent or except as required or permitted by law, Advantage Trailer will not sell, share, trade or give away any Information that it collects or receives regarding its Users.
The Site may provide hyperlinks, which are highlighted words or pictures within a hypertext document that, when clicked, take you to another place within the document, to another document altogether, or may take you to a third party website not controlled by Advantage Trailer. These hyperlinked third party websites may collect and disclose Information different than this Site. Advantage Trailer is not responsible for the collection, use, or disclosure of information collected through these web sites, and Advantage Trailer expressly disclaims any and all liability related to such collection, use, or disclosure.
The Advantage Trailer Site is not directed towards children under 18 years of age and Advantage Trailer does not knowingly collect any information from children under 18 years of age through the Site.
In the event that another company acquires Advantage Trailer or all or part of its assets, we reserve the right to include Information among the assets transferred to the acquiring company.


We'll be in Santorini for three nights and Mykonos for three nights at the end of April. I know this is low season and the tour we will be on (Gate 1 Travel) does not offer a lot of options for sightseeing (more of a "day on your own") until its May tours, when you have optional trips to nearby islands. Can you recommend the best way to maximize our time on each island and let us see as much as we can? Are car rentals practical? Someone mentioned motor scooters---are they safe? Would we be smart hiring a car and driver for a day? We're staying in Fira on Santorini and have heard Oia is quite picturesque. Can anyone recommend "must see" or "must do" activities?
I think a rental car would not only be more practical than a scooter but also the safest. But some of the roads are extremely curvy, and the road to Oia comes with steep dropoffs, so unless you're a confident driver and can put up with the crazy local ones, hiring a car and driver would be a good idea. Also Santorini has an excellent bus system with its hub in Fira so you can reach every corner of the island efficiently and cheaply until about 8 PM. After that it's taxis until midnight. If you do get a car be sure to have lunch at Katina's Fish Taverna below Oia on the wharf at Ammoudi. Also take a drive to Kamari Beach and Ancient Thera on the mountain above the beach.
We stayed in Santorini last September in Oia - you need a ful day to wander the main pathway as it is full of great little shops and cafes. A must is watching the sunset there. there are public buses from Fira to Oai - easy way to travel. if you do get a car, may not need it for the whole time as you don't need it in Fira or Oia.
Fun to do is the donkey ride from the top of Oia to the base.
PLEASE DO NOT RIDE THE DONKEYS. I know they're cute and some people want to take photos riding them and experience the ride up or down the steps in Fira and Oia, but believe me, these poor animals are abused on a regular basis. The donkey men use sticks with nails to prod or whip them into moving along their way. I've seen this myself countless times. It's no wonder they try to wipe their passengers off their backs by rubbing up against the sides of the steps. I've also seen some pretty badly scraped legs from people who weren't able to avoid that circumstance.
Mykonos has a good bus system or you can rent a car to visit beautiful outlying beaches. The boat trip to historic Delos should be included. Our hotel made the arrangements for us.
I would never ride a scooter on Santorini with its hairpin curves and sheer drop offs;rent a car or take the bus to Oia from Fira.
I stayed at Oia in Sept. The only time we ventured outside of Oia we took the bus to Fira--the bus ran late and was packed with people, but it was inexpensive. In Fira, we took one of the sunset cruises that stopped at the volcano for a short hike. It was okay, but I would have been just as happy sitting on the patio back at the room or roaming the streets of Oia. In Fira, there were donkey rides down to the dock. My brother-in-law walked down the donkey path and said the stench was pretty overwhelming, he had to hold his breath as much as he could. Didn't seem like much fun to me.
There were two things I planned on doing in Santorini, see the better beaches and do the winery tour--did neither. Thought about getting a cab, but in Ia, we were pretty far away and seemed like too much effort. Yea, I was feeling pretty lazy; it was just so beautiful, I was happy soaking up the views.
Driving looked pretty scary, so I like the idea of hiring a driver for the day and touring the Island.
You could take a tour to Akrotiri (sp?) on Santorini. The first time I went it was on a tour that also included a winery. It was nice and the person who explained what we were looking at at the ancient city brought the city to life. The second time we went on our own and there was no one to explain anything and nothing was printed in English. The whole thing was practically wasted on my friend, so I recommend taking a tour. Also, read up about it before walking through and it will mean more.
..we rented motor bikes on Santorini..we had wonderful day trips. We never ventured out at night. I know some people might be uncomfotable with this but I had driven a cycle before and my SO had a Harley when he was young. Please take advice re a trip to Delos when you are staying in Mykonos. There is 1 day when the ferry doesn't run so be sure you are aware of this when you plan your trip.
Akrotiri has been closed indefinitely for repairs to the protective roof covering, but if you're lucky it will be open when you're there. Just ask in any travel agency on the island for current information.
We were in Mykonos and Santorini in August. We missed something that I probably regret for the rest of my life and that was a classical concert in Delos that takes place at night once a month when the moon is full.We didn't know about it and were there when the moon was full.
Wow, that sounds fantastic. One of my favorite things to do when I'm in Oia on Santorini is to watch the full moon rise over the far end of the island, backlighting the distant villages just before casting sparkling reflections in the water below the cliffs.


A cold front moved through last night and we had a few rain showers around 3 AM. The rest of the day will be sunny with decreasing wind, which means great weather for the two big sport events. We have the Chiefs starting at noon and then Sporting KC begins at 330 PM.
The models are narrowing in on a potential storm next week. There is a lot to think about and discuss with this system. I have had my eye on this for a while now as we learn more about the new pattern. Take a look at these two . . . → Read More: A Storm Next Week?
We are having some great fall weather and it will last most of the next week with a few exceptions.


We are at war. The time for action is NOW!
Click here to hear our new jingle!
Introducing the Bed Bug Baker!
This innovative system offers portable, affordable heat eradication of bed bugs, and is based on the University of Florida Heat Chamber.
The Bed Bug Baker works on a simple principle: No bed bugs are resistant to heat.
The system is designed with an inner and outer, flame retardant tent. The Bed Bug Baker system can be used in buildings with fire sprinkler systems.
The largest model, The King is designed to heat a king size bed. It can also remediate a living room full of furniture with two sets of mattresses and box springs on top. Fits in a 12'x12' room.
The Bed Bug Baker was designed by chemical engineer Elizabeth (Lizbe) Knote, and has been tested by the University of Florida's Department of Entemology in Gainsville, FL.
Find the nearest Bed Bug Battalion Heating Network Member.
Treatment of luggage, toys, books, business documents.
Make appointment for furniture and household goods.
Click HERE for a PDF download of our brochure with detailed information.


Wow, some good chunky babies. My ds (dear son) was born at 8lb 3 but dropped a good amount. He didn't get back up to birth weight until 4 weeks after me pumping after each feed to increase supply and giving him top ups. Now at 6 weeks he's 9lb 6 and hv says he seems to be following 25th centile. She seems happy with him but is coming out to weigh him again in 2 weeks.
My little boy was born 7lb, now at 6 weeks he's 11lb, so he's packing it on!
My EBF (extended breastfeeding, exclusively breastfeeding) DS (dear son) was born 8 lb 2oz , at 6 weeks+4 days he weighed 12lb 1oz.
He is a chubby little thing, his big sister was the same.
Don't worry they lose the chubbiness when they get moving, my DD (dear daughter) aged 8 yrs old is now only 25th percentile for weight and 75th for height. She just eats what she needs and no more. Frankly she doesn't sit still long enough to eat a lot now... can't even compare her to that cuddly blob of a baby she was all those years ago.
Ah prettyinpink, don't be sad! My baby has had dreadful unrelenting wind and reflux, If I lie him down he's invariably choking up milk in minutes. It has been a helluva tough seven weeks as he nearly always sleeps propped up on someone or in the sling.
I'm sure it's because he guzzles too much milk, too often. So there's a downside to having a very abundant supply of milk and a greedy baby. I would say keep trying to breastfeed, not every baby is destined to be a chubby monster like mine.
My little man was 3.82kg at birth, he had 11.4% weight loss on day 3 (jaundice due to forceps delivery and also tongue tie) and we've managed to get him to 3.9kg (8lb 9oz) at 3 weeks which I'm super happy with as he's only just has his tongue snipped. After a week of weaning his formula top ups we're now bck to ebf.


text:
Хартмут Бризеник (; , Луккенвальде, Бранденбург, Советская зона оккупации Германии — ) — восточногерманский легкоатлет, немецкий (ГДР) легкоатлет, бронзовый призёр Олимпийских игр 1972 года в Мюнхене в толкании ядра.

Спортивная карьера
Выступал за берлинское «Динамо», тренировался у Вилли Кюля.

В 1969—1972 годах становился четырёхкратным чемпионом ГДР в зале и четырёхкратным чемпионом на открытом воздухе (1971, 1971, 1973 и 1974): трехкратный Чемпион Европы в помещении (1970—1972). На летних Олимпийских играх в Мюнхене (1972) завоевал бронзовую медаль, дважды становился чемпионом Европы (1971 и 1974).

В 1978 году завершил свою спортивную карьеру, работал тренером юниоров в клубе Динамо (Берлин). После объединения Германии работал в кампании, производящей спортивное оборудование.

Примечания

Источники
 https://web.archive.org/web/20121025053758/http://www.sports-reference.com/olympics/athletes/br/hartmut-briesenick-1.html
 http://www.bild.de/sport/mehr-sport/leichtathletik/kugelstosser-hartmut-briesenick-ist-tot-29495082.bild.html

Серебряные призёры летних Олимпийских игр 1972 года
Легкоатлеты на летних Олимпийских играх 1972 года
Толкатели ядра Германии

redpajama_set_name: RedPajamaWikipedia


Recorded his 150th career win with a victory against the Milwaukee Brewers on April 24. He became the 261st player to reach this mark.
The Tampa Bay Rays announced on February 7, that they will wear their 1990's Devil Rays throwback jerseys four times during the season: May 11, June 15, August 17, and September 21. They wore their throwback jerseys on April 21.
This page was last edited on 25 April 2019, at 12:19 (UTC).


Saturday night it poured rain, so we decided to have our dinner at The Boutique Bed and Breakfast that also offers a dining experience. The Hawaiian Bar-B-Que Restaurant mainly makes fruit infused meat and seafood dishes for guests to enjoy (lunch and dinner).
We ordered the famous Baby Back Ribs (Php 450.00) with pineapple, which has a nice crisp outside texture, juicy and tender. We also had Blue marlin Barbeque Php 168.00, very small serving dished up with bananas (good for those who are on a diet), Choco Peanut Butter Banana Shake Php 135.00 (a heavy frozen treat with super rich chocolaty and great banana taste), and Apple Iced Tea Smoothie Php 125.00.
Guess who was the famous personality sitting at the table next to us? Turns out that former Philippine First Lady Imelda Marcos with a couple of friends were having dinner there as well.
As always, famous personalities do often get preferential treatment. There were quite a few people who asked her for a picture taking. I also wanted to have a souvenir shot but I refrained myself from doing it thinking that I might be intruding upon her privacy. But more often than not, I don't normally get star struck over celebrities.
Another problem that we encountered was locking the terrace sliding door. HB asked the bellman for help. Both of them tried several times to lock the door but to no avail. The problem was not the deadbolt, but the two sliding doors as they were not properly leveled. However, the nice bellman was very apologetic and assured us that we are safe because they have a 24-hour roaming security guard. Just to be sure, we decided to put a chair inside the room near the sliding door that serves as our alarm in case someone would try to enter.


Check out our award winning magazine lineup for kids of all ages!
Find the perfect Bible studies for your Christian small group. Choose from our collection of DVD studies including our #1 selling product, The Truth Project, as well as renowned teacher Ray Vander Laan's That the World May Know and more!
Whether you are looking to get your marriage off on the right Biblical path or you've been married for years and need help with a particular area; we have the right resources for you.
Check out the bestselling resources on the Focus on the Family Store from this past week!
Invest in family ministry by making a donation to Focus on the Family. Every donation will go to directly funding ministry programs, such as Marriage, Parenting, Option Ultrasound, and Hope Restored.
Find exclusive sales and offers from Focus on the Family.


text:
using Drawing = DocumentFormat.OpenXml.Drawing;
using Presentation = DocumentFormat.OpenXml.Presentation;
using Charts = DocumentFormat.OpenXml.Drawing.Charts;
using Signum.Utilities;
using System;
using System.Collections.Generic;
using Data = System.Data;
using System.Linq;
using DocumentFormat.OpenXml;
using Signum.Entities.UserQueries;
using Signum.Entities.Chart;
using Signum.Engine.UserQueries;
using Signum.Entities.UserAssets;
using Signum.Entities.DynamicQuery;
using Signum.Engine.Chart;
using Signum.Entities;
using DocumentFormat.OpenXml.Packaging;
using System.Globalization;
using System.Reflection;
using Signum.Engine.Templating;
using Signum.Entities.Word;
using System.Threading;
using Signum.Engine.Basics;

namespace Signum.Engine.Word
{
    public static class TableBinder
    {
        internal static void ValidateTables(OpenXmlPart part, WordTemplateEntity template, List<TemplateError> errors)
        {
            var graphicFrames = part.RootElement.Descendants().Where(a => a.LocalName == "graphicFrame").ToList();
            foreach (var item in graphicFrames)
            {
                var nonVisualProps = item.Descendants().SingleOrDefaultEx(a => a.LocalName == "cNvPr");
                var title = GetTitle(nonVisualProps);

                if (title != null)
                {
                    var prefix = title.TryBefore(":");
                    if (prefix != null)
                    {
                        var provider = WordTemplateLogic.ToDataTableProviders.TryGetC(prefix);
                        if (provider == null)
                            errors.Add(new TemplateError(false, "No DataTableProvider '{0}' found (Possibilieties {1})".FormatWith(prefix, WordTemplateLogic.ToDataTableProviders.Keys.CommaOr())));
                        else
                        {
                            var error = provider.Validate(title.After(":"), template);
                            if (error != null)
                                errors.Add(new TemplateError(false, error));
                        }
                    }

                }
            }
        }

        internal static void ProcessTables(OpenXmlPart part, WordTemplateParameters parameters)
        {
            var graphicFrames = part.RootElement.Descendants().Where(a => a.LocalName == "graphicFrame").ToList();
            foreach (var item in graphicFrames)
            {
                var nonVisualProps = item.Descendants().SingleEx(a => a.LocalName == "cNvPr");
                var title = GetTitle(nonVisualProps);

                Data.DataTable? dataTable = title != null ? GetDataTable(parameters, title) : null;
                if (dataTable != null)
                {
                    var chartRef = item.Descendants<Charts.ChartReference>().SingleOrDefaultEx();
                    if (chartRef != null)
                    {
                        OpenXmlPart chartPart = part.GetPartById(chartRef.Id.Value);
                        var chart = chartPart.RootElement.Descendants<Charts.Chart>().SingleEx();
                        ReplaceChart(chart, dataTable);
                    }
                    else
                    {
                        var table = item.Descendants<Drawing.Table>().SingleOrDefaultEx();
                        if (table != null)
                        {
                            ReplaceTable(table, dataTable);
                        }
                    }
                }
            }
        }

        static string? GetTitle(OpenXmlElement? nonVisualProps)
        {
            if (nonVisualProps is Drawing.NonVisualDrawingProperties draw)
                return draw.Title?.Value;

            if (nonVisualProps is Presentation.NonVisualDrawingProperties pres)
                return pres.Title?.Value;

            throw new NotImplementedException("Imposible to get the Title from " + nonVisualProps?.GetType().FullName);
        }

        static void SynchronizeNodes<N, T>(List<N> nodes, List<T> data, Action<N, T, int, bool> apply)
            where N : OpenXmlElement
        {
            for (int i = 0; i < data.Count; i++)
            {
                if (i < nodes.Count)
                {
                    apply(nodes[i], data[i], i, false);
                }
                else
                {
                    var last = nodes[nodes.Count - 1];
                    var clone = (N)last.CloneNode(true);
                    last.Parent.InsertAfter(clone, last);
                    apply(clone, data[i], i, true);
                }
            }

            for (int i = data.Count; i < nodes.Count; i++)
            {
                nodes[i].Remove();
            }
        }

        private static void ReplaceTable(Drawing.Table table, Data.DataTable dataTable)
        {
            var tableGrid = table.Descendants<Drawing.TableGrid>().SingleEx();
            SynchronizeNodes(
                tableGrid.Descendants<Drawing.GridColumn>().ToList(),
                dataTable.Columns.Cast<Data.DataColumn>().ToList(),
                (gc, dc, i, isCloned) => { });

            var rows = table.Descendants<Drawing.TableRow>().ToList();
            SynchronizeNodes(
               rows.FirstEx().Descendants<Drawing.TableCell>().ToList(),
               dataTable.Columns.Cast<Data.DataColumn>().ToList(),
               (gc, dc, i, isCloned) =>
               {
                   var text = gc.Descendants<Drawing.Text>().SingleOrDefaultEx();

                   if (text != null)
                       text.Text = dc.Caption ?? dc.ColumnName;
               });

            SynchronizeNodes(
                rows.Skip(1).ToList(),
                dataTable.Rows.Cast<Data.DataRow>().ToList(),
                (tr, dr, j, isCloned) =>
                {
                    SynchronizeNodes(
                        tr.Descendants<Drawing.TableCell>().ToList(),
                        dataTable.Columns.Cast<Data.DataColumn>().Select(dc => dr[dc]).ToList(),
                        (gc, val, i, isCloned2) => { gc.Descendants<Drawing.Text>().SingleEx().Text = ToStringLocal(val); });
                });
        }

        public static void ReplaceChart(Charts.Chart chart, Data.DataTable table)
        {
            var plotArea = chart.Descendants<Charts.PlotArea>().SingleEx();
            var series = plotArea.Descendants<OpenXmlCompositeElement>().Where(a => a.LocalName == "ser").ToList();

            SynchronizeNodes(series, table.Rows.Cast<Data.DataRow>().ToList(),
                (ser, row, i, isCloned) =>
                {
                    if (isCloned)
                        ser.Descendants<Drawing.SchemeColor>().ToList().ForEach(f => f.Remove());

                    BindSerie(ser, row, i);
                });
        }

        private static void BindSerie(OpenXmlCompositeElement serie, Data.DataRow dataRow, int index)
        {
            serie.Descendants<Charts.Formula>().ToList().ForEach(f => f.Remove());

            serie.GetFirstChild<Charts.Index>().Val = new UInt32Value((uint)index);
            serie.GetFirstChild<Charts.Order>().Val = new UInt32Value((uint)index);

            var setTxt = serie.Descendants<Charts.SeriesText>().SingleEx();
            setTxt.StringReference.Descendants<Charts.NumericValue>().SingleEx().Text = dataRow[0]?.ToString();

            {
                var cat = serie.Descendants<Charts.CategoryAxisData>().SingleEx();
                cat.Descendants<Charts.PointCount>().SingleEx().Val = new UInt32Value((uint)dataRow.Table.Columns.Count - 1);
                var catValues = cat.Descendants<Charts.StringPoint>().ToList();
                SynchronizeNodes(catValues, dataRow.Table.Columns.Cast<Data.DataColumn>().Skip(1).ToList(),
                  (sp, col, i, isCloned) =>
                  {
                      sp.Index = new UInt32Value((uint)i);
                      sp.Descendants<Charts.NumericValue>().Single().Text = col.ColumnName;
                  });
            }

            {
                var vals = serie.Descendants<Charts.Values>().SingleEx();
                vals.Descendants<Charts.PointCount>().SingleEx().Val = new UInt32Value((uint)dataRow.Table.Columns.Count - 1);
                var valsValues = vals.Descendants<Charts.NumericPoint>().ToList();
                SynchronizeNodes(valsValues, dataRow.ItemArray.Skip(1).ToList(),
                  (sp, val, i, isCloned) =>
                  {
                      sp.Index = new UInt32Value((uint)i);
                      sp.Descendants<Charts.NumericValue>().Single().Text = ToStringLocal(val);
                  });
            }
        }

        private static string? ToStringLocal(object val)
        {
            return val == null ? null :
                (val is IFormattable) ? ((IFormattable)val).ToString(null, CultureInfo.InvariantCulture) :
                val.ToString();
        }

        private static Data.DataTable? GetDataTable(WordTemplateParameters parameters, string title)
        {
            var key = title.TryBefore(":");

            if (key == null)
                return null;

            var provider = WordTemplateLogic.ToDataTableProviders.GetOrThrow(key);

            var table = provider.GetDataTable(title.After(":"), new WordTemplateLogic.WordContext(parameters.Template, (Entity?)parameters.Entity, parameters.Model));

            return table;
        }
    }

    public class ModelDataTableProvider : IWordDataTableProvider
    {
        public Data.DataTable GetDataTable(string suffix, WordTemplateLogic.WordContext ctx)
        {
            MethodInfo mi = GetMethod(ctx.Template, suffix);

            object? result;
            try
            {
                result = mi.Invoke(ctx.Model, null);
            }
            catch (TargetInvocationException e)
            {
                e.InnerException!.PreserveStackTrace();

                throw e.InnerException!;
            }

            if (!(result is Data.DataTable dt))
                throw new InvalidOperationException($"Method '{suffix}' on '{ctx.Model!.GetType().Name}' did not return a DataTable");

            return dt;
        }

        private static MethodInfo GetMethod(WordTemplateEntity template, string method)
        {
            if (template.Model == null)
                throw new InvalidOperationException($"No WordModel found in template '{template}' to call '{method}'");

            var type = template.Model.ToType();
            var mi = type.GetMethod(method);
            if (mi == null)
                throw new InvalidOperationException($"No Method with name '{method}' found in type '{type.Name}'");

            return mi;
        }

        public string? Validate(string suffix, WordTemplateEntity template)
        {
            try
            {
                GetMethod(template, suffix);
                return null;
            }
            catch (Exception e)
            {
                return e.Message;
            }
        }
    }

    public class UserQueryDataTableProvider : IWordDataTableProvider
    {
        public Data.DataTable GetDataTable(string suffix, WordTemplateLogic.WordContext context)
        {
            var userQuery = Database.Query<UserQueryEntity>().SingleOrDefault(a => a.Guid == Guid.Parse(suffix));

            using (CurrentEntityConverter.SetCurrentEntity(context.Entity))
            {
                var request = UserQueryLogic.ToQueryRequest(userQuery);
                ResultTable resultTable = QueryLogic.Queries.ExecuteQuery(request);
                var dataTable = resultTable.ToDataTable();
                return dataTable;
            }
        }

        public string? Validate(string suffix, WordTemplateEntity template)
        {
            if (!Guid.TryParse(suffix, out Guid guid))
                return "Impossible to convert '{0}' in a GUID for a UserQuery".FormatWith(suffix);

            if (!Database.Query<UserQueryEntity>().Any(a => a.Guid == guid))
                return "No UserQuery with GUID={0} found".FormatWith(guid);

            return null;
        }
    }

    public class UserChartDataTableProvider : IWordDataTableProvider
    {
        public Data.DataTable GetDataTable(string suffix, WordTemplateLogic.WordContext context)
        {
            return GetDataTable(suffix, context.Entity!);
        }

        public Data.DataTable GetDataTable(string suffix, Entity entity)
        {
            var userChart = Database.Query<UserChartEntity>().SingleOrDefault(a => a.Guid == Guid.Parse(suffix));

            using (CurrentEntityConverter.SetCurrentEntity(entity))
            {
                var chartRequest = UserChartLogic.ToChartRequest(userChart);
                ResultTable result = ChartLogic.ExecuteChartAsync(chartRequest, CancellationToken.None).Result;
                var tokens = chartRequest.Columns.Select(a => a.Token).NotNull().ToList();

                //TODO: Too specific. Will be better if controlled by some parameters.
                if (chartRequest.HasAggregates() && tokens.Count(a => !(a.Token is AggregateToken)) == 2 && tokens.Count(a => a.Token is AggregateToken) == 1)
                {
                    var firstKeyIndex = tokens.FindIndex(a => !(a.Token is AggregateToken));
                    var secondKeyIndex = tokens.FindIndex(firstKeyIndex + 1, a => !(a.Token is AggregateToken));
                    var valueIndex = tokens.FindIndex(a => a.Token is AggregateToken);
                    return result.ToDataTablePivot(secondKeyIndex, firstKeyIndex, valueIndex);
                }
                else
                    return result.ToDataTable();
            }
        }

        public string? Validate(string suffix, WordTemplateEntity template)
        {
            if (!Guid.TryParse(suffix, out Guid guid))
                return "Impossible to convert '{0}' in a GUID for a UserChart".FormatWith(suffix);

            if (!Database.Query<UserChartEntity>().Any(a => a.Guid == guid))
                return "No UserChart with GUID={0} found".FormatWith(guid);

            return null;
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
"Auf meinen Schultern", Raphael Hillebrand © Zé de Paiva
6. September 2019, Inky Lee
In Auf meinen Schultern, premiering at Ballhaus Naunynstrasse, Raphael Hillebrand shares the story of how he navigated his brutal exclusion from society through spoken word, dance, sound, and video.
Let's start with a question: Where are you from?
As a little boy, born in Hong Kong and raised in Berlin, Raphael Hillebrand walks into a bakery. The white owner says, "Oh, cute black boy, where are you from?" Hillebrand replies, "I'm Chinese!" Pause.
"Where are you from?" is a question that often marks one's noticeable otherness – one's non-belonging – in a society. It is a question that follows and troubles Hillebrand throughout his upbringing as a black person ("the N-word" as he calls it) living in Europe. As an "Asian girl" living in Europe, my interest perks. I've insisted on graduating from the "G-word" for a long time now, but it seems to unfailingly cling. Politics of space. 'Girl' takes up less room than 'woman', 'woman' less than 'man'. Asian, black or any other additional adjective takes up less space than simply being a person, a human. In his performance, Hillebrand navigates his course of finding and taking space in a society that does not include him in its economy of space.
His sculpturally carved body moves seamlessly through the space. We hear, intimately, the sound of his breath building. The refined strength and grace in his movements reveal the poignant vulnerability under his skin. He softly and swiftly moves in and out of the floor, manifesting his skill to move gracefully with gravity, which he compares to racism. "Racism is like gravity," he says. "It's everywhere." Although, Hillebrand says, he grew up to be 179 cm tall against this gravity, and he extends his arm above his head, fist clenched, declaring that he grew up to be over two metres tall against the gravity of white patriarchy. I witness in his dancing body a fluidity that moves, literally and metaphorically, in order to demand space and presence.
This body that has lived through words of rage is more honest and immediate than his animated facial expressions, his ornate way of speech, the clever, and at times, very fancy techniques on the video screen, and even than the beautiful cello soloist who accompanies him throughout the piece. "When someone makes racist remarks," he says, "it goes through under the skin and into the bones." During his sophisticated break dance solos, his words materialise into an ephemeral shudder that takes up space. Skin opens its pores.
I am left with a question: How does one learn to occupy space? Furthermore, after the hard work of earning space, how does one find the generosity to share it with others? The tight-knit and supportive audience seemed to be a part of Hillebrand's community. Perhaps this was evidence that he has done this part of earning and sharing. As much of a cliché as it may sound, the answer I found is love – the unconditional love of the mother that stopped him from jumping from the balcony of his 13th floor apartment. The love for hip hop dance that imbued him with the sense of belonging that he desperately longed for. These loves appear to be the fuel that nurtured his sensitivity into creativity, transforming it into hope. This piece was dedicated to, and often addressed Hillebrand's daughter Jara directly. At the fourth round of applause, Jara toddles across the stage angelically and I couldn't stop myself from letting out a loud "aaaaaah" at her sweetness. The love was tangible in the air, and I felt a personal hope become a collective one.
Auf meinen Schultern – A dance performance by Raphael Hillebrand premiered on 5 September 2019 at Ballhaus Naunynstraße.
Tags: Ballhaus Naunynstraße (EN), Raphael Hillebrand (EN)
Tanz im August Review: Happy Island
How the Body Remembers – The Archive, the Canon, and Other Impossible Questions.


text:
John Nickson (fl. 1687)
John Nickson was a white indentured servant on the plantation owned by Ralph Wormeley II, in Middlesex County. Nothing is known of Nickson's birth, his early life, or the circumstances that encouraged him to enter into indentured servitude to Wormeley. He first enters the historical record in 1687, as the defendant in a Middlesex County Court case in which he is accused of being the prime mover in a conspiracy of servants and slaves who attempted to free themselves from Wormeley's servitude by force of arms. The Middlesex conspiracy is one of the last recorded instances of interracial revolt in colonial Virginia.
Contributor: Natalie Zacek
The court accused Nickson of acting as the leader of a group of "diverse other ill disposed Servants and others," including slaves, who apparently planned to acquire guns, powder, and shot for use in their in their escape. Middlesex County authorities discovered the plot before it could be carried out, however. Nickson was confined to the county jail and held over to the next court session. Because the General Court records from this period were destroyed, the result of the case and Nickson's fate remain unknown. No evidence exists relating to his later life or the date and circumstances of his death.
According to several historians, John Nickson's co-conspirators almost certainly included the slaves Lawrence and Mingoe, as well as a white servant named Richard Wilkins. In 1689 these men, perhaps inspired by Nickson's earlier plans, escaped from Wormeley's plantation and, having acquired some followers from the neighborhood, spent the next two years raiding the estates of Rappahannock County and stealing livestock from the local planters. In 1691 the depredations of these three men were the source of far greater concern, as they stole several firearms, encouraging local officials to increase their efforts to capture these outlaws. All three were tried in the courts of Middlesex County: Mingoe was sentenced to thirty-nine lashes, while Wilkins's term of indenture was extended by five years. Because Lawrence was captured while in possession of a gun, he was charged as a felon and held in the county jail until he could receive his sentence from Virginia's General Court; the outcome of his case is not known, but, according to the historian Anthony S. Parent Jr., it is probable that, as a slave found with a gun, he was hanged.
Because Nickson and his followers' plans were uncovered before they could be set in motion, it could be argued that the conspiracy was of little historical importance; however, it is instructive to place Nickson's plot within the wider picture of the racial politics of late seventeenth-century Virginia. Throughout the previous fifty years, cooperation was common between white servants and black slaves, as legal definitions of slavery and servitude were vague and inconsistent, and in many instances the two groups were moved to make common cause against the colony's elite, particularly their own masters. Following Bacon's Rebellion (1676–1677), though, colonial legal codes were adjusted in order to draw obvious distinctions between laborers of European descent and those of African heritage, thus to a large extent encouraging poor whites to identify themselves more with planters than with nonwhites of their own class. Although servants and slaves continued to work together as plantation laborers until well into the eighteenth century, racial identity soon came to outrank class solidarity, and instances of interracial labor resistance became less and less common. John Nickson's conspiracy may well have been the last true interracial conspiracy in the history of colonial Virginia.
John Nickson is arrested by Middlesex County authorities and charged with leading a conspiracy of servants and slaves on Ralph Wormeley II's plantation. The court decision is recorded in the Middlesex County Order Book, but his fate remains unknown.
Two slaves, Mingoe and Lawrence, and a servant, Richard Wilkins, escape from Ralph Wormeley II's estate in Middlesex County. They gather followers and for two years raid plantations in Rappahannock County, stealing livestock and other goods.
Two slaves, Mingoe and Lawrence, and a servant, Richard Wilkins, are captured and tried in the Middlesex County court for the theft of firearms.
Allen, Theodore W. The Invention of the White Race. Vol. 1, Racial Oppression and Social Control. New York: Verso, 1994.
Billings, Warren M., ed. The Old Dominion in the Seventeenth Century: A Documentary History of Virginia, 1606–1689. Chapel Hill: University of North Carolina Press, 1975.
Heinemann, Ronald L., John G. Kolp, Anthony S. Parent Jr., and William G. Shade. Old Dominion, New Commonwealth: A History of Virginia, 1607–2007. Charlottesville: University of Virginia Press, 2008.
Morgan, Edmund S. American Slavery, American Freedom: The Ordeal of Colonial Virginia. New York: W. W. Norton, 1976.
Parent, Anthony S., Jr. Foul Means: The Formation of a Slave Society in Virginia, 1660–1740. Chapel Hill: University of North Carolina Press, 2006.
Zacek, Natalie. John Nickson (fl. 1687). (2021, December 22). In Encyclopedia Virginia. https://encyclopediavirginia.org/entries/nickson-john-fl-1687.
Zacek, Natalie. "John Nickson (fl. 1687)" Encyclopedia Virginia. Virginia Humanities, (22 Dec. 2021). Web. 01 Feb. 2023


text:
#include "treeoptimizer3.hh"
#include <fstream>
#include <string>

using namespace std;

namespace AISNavigation {

#define DEBUG(i) \
        if (verboseLevel>i) cerr

//helper functions. Should I explain :-)?
inline double max3( const double& a, const double& b, const double& c){
  double m=a>b?a:b;
  return m>c?m:c;
}
inline double min3( const double& a, const double& b, const double& c){
  double m=a<b?a:b;
  return m<c?m:c;
}

struct NodeInfo{
  TreeOptimizer3::Vertex* n;
  double translationalWeight;
  double rotationalWeight;
  int direction;
  TreeOptimizer3::Transformation transformation;
  TreeOptimizer3::Transformation parameters;
  NodeInfo(TreeOptimizer3::Vertex* v=0, double tw=0, double rw=0, int dir=0,
	   TreeOptimizer3::Transformation t=TreeOptimizer3::Transformation(0,0,0,0,0,0),
	   TreeOptimizer3::Parameters p=TreeOptimizer3::Transformation(0,0,0,0,0,0)){
    n=v;
    translationalWeight=tw;
    rotationalWeight=rw;
    direction=dir;
    transformation=t;
    parameters=p;
  }
};

typedef std::vector<NodeInfo> NodeInfoVector;

/********************************** Preconditioned and unpreconditioned error distribution ************************************/

void TreeOptimizer3::computePreconditioner(){
  for (uint i=0; i<M.size(); i++){
    M[i][0]=0;
    M[i][1]=0;
  }
  gamma[0] = gamma[1] = numeric_limits<double>::max();

  int edgeCount=0;
  for (EdgeSet::iterator it=sortedEdges->begin(); it!=sortedEdges->end(); it++){
    edgeCount++;
    if (! (edgeCount%1000))
      DEBUG(1) << "m";

    Edge* e=*it;
    //Transformation t=e->transformation;
    InformationMatrix W=e->informationMatrix;

    Vertex* top=e->top;
    for (int dir=0; dir<2; dir++){
      Vertex* n = (dir==0)? e->v1 : e->v2;
      while (n!=top){
	uint i=n->id;
	double rW=min3(W[0][0], W[1][1], W[2][2]);
	double tW=min3(W[3][3], W[4][4], W[5][5]);
	M[i][0]+=rW;
	M[i][1]+=tW;
	gamma[0]=gamma[0]<rW?gamma[0]:rW;
	gamma[1]=gamma[1]<tW?gamma[1]:tW;
	n=n->parent;
      }
    }

  }

  if (verboseLevel>1){
    for (uint i=0; i<M.size(); i++){
      cerr << "M[" << i << "]=" << M[i][0] << " " << M[i][1] << endl;
    }
  }
}

void TreeOptimizer3::propagateErrors(bool usePreconditioner){
  iteration++;
  int edgeCount=0;
  // this is the workspace for computing the paths without
  // bothering too much the memory allocation
  static NodeInfoVector path;
  path.resize(edges.size()+1);
  static Rotation zero(0.,0.,0.);

  onIterationStart(iteration);
  for (EdgeSet::iterator it=sortedEdges->begin(); it!=sortedEdges->end(); it++){
    edgeCount++;
    if (! (edgeCount%1000))
      DEBUG(1) << "c";

    if (isDone())
      return;

    Edge* e=*it;
    Vertex* top=e->top;
    Vertex* v1=e->v1;
    Vertex* v2=e->v2;
    int l=e->length;
    onStepStart(e);

    recomputeTransformations(v1,top);
    recomputeTransformations(v2,top);
    DEBUG(2) << "Edge: " << v1->id << " " << v2->id << ", top=" << top->id << ", length="<< l <<endl;

    //BEGIN: Path and weight computation
    int pc=0;
    Vertex* aux=v1;
    double totTW=0, totRW=0;
    while(aux!=top){
      int index=aux->id;
      double tw=1./(double)l, rw=1./(double)l;
      if (usePreconditioner){
	tw=1./M[index][0];
	rw=1./M[index][1];
      }
      totTW+=tw;
      totRW+=rw;
      path[pc++]=NodeInfo(aux,tw,rw,-1,aux->transformation, aux->parameters);
      aux=aux->parent;
    }
    int topIndex=pc;
    path[pc++]=NodeInfo(top,0.,0.,0, top->transformation, top->parameters);
    pc=l;
    aux=v2;
    while(aux!=top){
      int index=aux->id;
      double tw=1./l, rw=1./l;
      if (usePreconditioner){
	tw=1./M[index][0];
	rw=1./M[index][1];
      }
      totTW+=tw;
      totRW+=rw;
      path[pc--]=NodeInfo(aux,tw,rw,1,aux->transformation, aux->parameters);
      aux=aux->parent;
    }

    //store the transformations relative to the top node
    //Transformation topTransformation=top->transformation;
    //Transformation topParameters=top->parameters;

    //END: Path and weight computation

    //BEGIN: Rotational Error
    Rotation r1=getRotation(v1, top);
    Rotation r2=getRotation(v2, top);
    Rotation re=e->transformation.rotation();
    Rotation rR=r2.inverse()*(r1*re);

    double rotationFactor=(usePreconditioner)?
      sqrt(double(l))* min3(e->informationMatrix[0][0],
			    e->informationMatrix[1][1],
			    e->informationMatrix[2][2])/
      ( gamma[0]* (double)iteration ):
      sqrt(double(l))*rotGain/(double)iteration;

//     double rotationFactor=(usePreconditioner)?
//       sqrt(double(l))*rotGain/
//       ( gamma[0]* (double)iteration * min3(e->informationMatrix[0][0],
// 					   e->informationMatrix[1][1],
// 					   e->informationMatrix[2][2])):
//       sqrt(double(l))*rotGain/(double)iteration;

    if (rotationFactor>1)
      rotationFactor=1;

    Rotation totalRotation = path[l].transformation.rotation() * rR * path[l].transformation.rotation().inverse();

    Translation axis   = totalRotation.axis();
    double angle=totalRotation.angle();

    double cw=0;
    for (int i= 1; i<=topIndex; i++){
      cw+=path[i-1].rotationalWeight/totRW;
      Rotation R=path[i].transformation.rotation();
      Rotation B(axis, angle*cw*rotationFactor);
      R= B*R;
      path[i].transformation.setRotation(R);
    }
    for (int i= topIndex+1; i<=l; i++){
      cw+=path[i].rotationalWeight/totRW;
      Rotation R=path[i].transformation.rotation();
      Rotation B(axis, angle*cw*rotationFactor);
      R= B*R;
      path[i].transformation.setRotation(R);
    }

    //recompute the parameters based on the transformation
    for (int i=0; i<topIndex; i++){
      Vertex* n=path[i].n;
      n->parameters.setRotation(path[i+1].transformation.rotation().inverse()*path[i].transformation.rotation());
    }
    for (int i= topIndex+1; i<=l; i++){
      Vertex* n=path[i].n;
      n->parameters.setRotation(path[i-1].transformation.rotation().inverse()*path[i].transformation.rotation());
    }

    //END: Rotational Error

    //now spread the parameters
    recomputeTransformations(v1,top);
    recomputeTransformations(v2,top);

    //BEGIN: Translational Error
    //Translation topTranslation=top->transformation.translation();

    Transformation tr12=v1->transformation*e->transformation;
    Translation tR=tr12.translation()-v2->transformation.translation();

//     double translationFactor=(usePreconditioner)?
//       trasGain*l/( gamma[1]* (double)iteration * min3(e->informationMatrix[3][3],
// 						      e->informationMatrix[4][4],
// 						      e->informationMatrix[5][5])):
//       trasGain*l/(double)iteration;

    double translationFactor=(usePreconditioner)?
      trasGain*l*min3(e->informationMatrix[3][3],
		      e->informationMatrix[4][4],
		      e->informationMatrix[5][5])/( gamma[1]* (double)iteration):
      trasGain*l/(double)iteration;

    if (translationFactor>1)
      translationFactor=1;
    Translation dt=tR*translationFactor;

    //left wing
    double lcum=0;
    for (int i=topIndex-1; i>=0; i--){
      Vertex* n=path[i].n;
      lcum-=(usePreconditioner) ? path[i].translationalWeight/totTW :  1./(double)l;
      double fraction=lcum;
      Translation offset= dt*fraction;
      Translation T=n->transformation.translation()+offset;
      n->transformation.setTranslation(T);
    }
    //right wing

    double rcum=0;
    for (int i=topIndex+1; i<=l; i++){
      Vertex* n=path[i].n;
      rcum+=(usePreconditioner) ? path[i].translationalWeight/totTW :  1./(double)l;
      double fraction=rcum;
      Translation offset= dt*fraction;
      Translation T=n->transformation.translation()+offset;
      n->transformation.setTranslation(T);
    }
    assert(fabs(lcum+rcum)-1<1e-6);

    recomputeParameters(v1, top);
    recomputeParameters(v2, top);

    //END: Translational Error

    onStepFinished(e);

    if (verboseLevel>2){
      Rotation newRotResidual=v2->transformation.rotation().inverse()*(v1->transformation.rotation()*re);
      Translation newRotResidualAxis=newRotResidual.axis();
      double      newRotResidualAngle=newRotResidual.angle();
      Translation rotResidualAxis=rR.axis();
      double      rotResidualAngle=rR.angle();
      Translation newTransResidual=(v1->transformation*e->transformation).translation()-v2->transformation.translation();

      cerr << "RotationalFraction:  " << rotationFactor << endl;
      cerr << "Rotational residual: "
	   << " axis " << rotResidualAxis.x()  << "\t" << rotResidualAxis.y()  << "\t" << rotResidualAxis.z() << " --> "
	   << "   ->  " << newRotResidualAxis.x()  << "\t" << newRotResidualAxis.y()  << "\t" << newRotResidualAxis.z()  << endl;
      cerr << " angle " << rotResidualAngle  << "\t" << newRotResidualAngle  << endl;

      cerr << "Translational Fraction:  " << translationFactor << endl;
      cerr << "Translational Residual" << endl;
      cerr << "    " << tR.x()  << "\t" << tR.y()  << "\t" << tR.z()  << endl;
      cerr << "    " << newTransResidual.x()  << "\t" << newTransResidual.y()  << "\t" << newTransResidual.z()  << endl;
    }

    if (verboseLevel>101){
      char filename [1000];
      sprintf(filename, "po-%02d-%03d-%03d-.dat", iteration, v1->id, v2->id);
      recomputeAllTransformations();
      saveGnuplot(filename);
    }
  }
  onIterationFinished(iteration);
}

};//namespace AISNavigation


text:
Bob Mazzer (born 1948) is a British street photographer, living in St Leonards-on-Sea. His photographs of people on the London Underground were collected in the book Underground (2014). Mazzer has also photographed people in Hastings and St Leonards-on-Sea. He currently has a retrospective exhibition at Hastings Museum and Art Gallery, until 17 April 2022.

Life and work
Mazzer was born in Whitechapel, London. He studied graphic design at Hornsey College of Art in London.

Mazzer photographed people on the London Underground in the 1970s and 1980s as he commuted to his job working as a projectionist at a porn cinema, and later. 40 years of these photographs were published in the book Underground (2014).

He has since moved to St Leonards-on-Sea. His book Bob Mazzer (2020), a restospective of work from the 1960s to the present day, includes "Underground images; hippie life in Wales; life in France; expanding life in the USA and local life in Hastings" and St Leonards. In Sussex (2022) includes photographs again from Hastings and St Leonards, as well as the surrounding countryside.

Publications
Underground. Spitalfields Life, 2014. .
Bob Mazzer. London: Unicorn, 2020. With a foreword by Will Self. .
In Sussex. London: Unicorn, 2022. . With a foreword by Eamonn McCabe. Published to coincide with an exhibition at Hastings Museum and Art Gallery.
Tube. Hastings: Silverhill, 2022.

Exhibitions

Solo exhibitions
Bob Mazzer: Underground, Howard Griffin Gallery, London, 2014
 Bob Mazzer in Camera: a Retrospective, Hastings Museum and Art Gallery, Hastings, 20 January 2022 – 17 April 2022

Group exhibitions
New Work in Britain: Aspects of Photography in Britain Today, The Photographers' Gallery, London, 1981. With Ricardo Gómez Pérez, Martin Parr, and others.

Films
Bob Mazzer: Underground & Other Pictures (FullBleed, 2015) – documentary directed by Richard Butchins

References

External links
Mazzer's profile at Howard Griffin Gallery

21st-century British photographers
Photographers from London
Street photographers
Living people
1948 births


A couple weeks ago I was finishing up a bike ride heading north on E. 14th from Slavic Village. After passing the sprawling madness of the Innerbelt and its on and off ramps, I finally came to a tad more scenic setting for a welcoming to Downtown Cleveland.
Rolling past Erie Cemetery toward Prospect, I saw the Playhouse Square arches had risen. Riding underneath, it felt like I had actually entered a city. Unlike the aforementioned highway monstrosity, Playhouse Square is distinctively Cleveland.
Similar arches had been put up at Huron and Prospect; a setting that I believe has great potential for a pet dream of mine. That dream is to close Huron from Prospect to Euclid in a bid to create the next East Fourth pedestrian thoroughfare.
Cleveland is less than half its peak population, yet we have the road infrastructure of our glory days. At the same time, Downtown is the region's fastest growing neighborhood. I can think of no better nod to this welcomed trend than to begin strategically selecting roads in our core that are overbuilt and underused for road diets or rezoning entirely to make the most of our infrastructure in a way that supports sustainability and vibrancy.
Huron, especially between Euclid and Prospect, serves little purpose for Downtown Cleveland. The only action it sees is during rush hour when cars try to essentially cut lines to the highway off E. 9th. The result is a bottleneck that forces the city to send out traffic cops to help continue the flow of overeager drivers trying to flee the city.
Is this really the best use of our resources? Methinks not.
Closing Huron would, as road-closures in other cities have, help direct the flow of automobile traffic much more efficiently than the current chutes and ladders system. Better yet, it would encourage growth in an area of Downtown that is seeing an influx of money and residents much in the same way East Fourth did a decade ago and continues to.
The M9, county headquarters, and the Cleveland Trust complex are all well underway with their respective construction projects, which include more apartments to join existing residents adjacent to the county project. Further up the road we have Star Plaza's renovation next to even more new apartments in the Residences at Hanna.
Why not connect these two intersections by focusing on the most common mode of transportation this corridor sees on a daily basis for accessing businesses and apartments?
Redeveloping Huron for pedestrians and cyclists will give a seamless connection between two of Downtown Cleveland's fastest growing intersections. We already know Downtown's influx of residents prefer walking and cycling to driving. We also know that pedestrians are happier on average than drivers.
So in a nod to those willing to return to the City of Cleveland, how about we give the people what they want? Give the streets back to the people. Let them walk underneath the Playhouse arches over Prospect and Huron, enjoy the fresh air, and continue the push of repurposing Cleveland's crumbling infrastructure for safe and healthy living.
You may not be able to completely close Huron due to the deliveries necessary to the Wyndham, but it could be closed to through traffic easily enough. Make the deliveries enter off Prospect and close the Euclid entrance.
Left turns are inefficient anyway, cutting across the bus lanes and oncoming traffic. Drivers on Euclid can turn right down E13th and go around the block.


text:
Boxing training will have me in top shape in Australia, says Andy Murray
ANDY MURRAY last night revealed he has been copying his pal Amir Khan as he looks to floor the opposition at this month's Australian Open.
The world No.4 spent Christmas in Miami as he trained for a month to get into perfect shape for a tilt at the first Grand Slam of the year.
Murray may not have put on the boxing gloves but admitted he had used the training methods of the world's top boxers.
The Scot said: "In the way a boxer does, I was doing the training first, doing all the technique things, doing basket drills and getting myself in good shape.
"Then it becomes like sparring, you'll be seeing what's going on in the matches and what you need to improve."
Murray is preparing for the Australian Open by playing in the Hopman Cup in Perth and added: "I enjoyed it here last year and hopefully it will stand me in good stead."


text:
'use strict';
var firebase = require("../config/firebase.config");

var reference = firebase.database().ref("doors");

function DoorsController() {
  this.get = function (req, res) {
    return reference.once("value").then(function(data){
      return res.send(200, data.val());
    });
  };

  this.add = function (req, res) {
    reference.push().set({
      identification: req.body.identification,
      location: req.body.location
    }, function (error) {
      if (!error) {
        return res.send(201);
      }
    });
  };

  this.update = function (req, res) {
    reference.child(req.params.id).set({
      identification: req.body.identification,
      location: req.body.location
    }, function (error) {
      if (!error) {
        res.send(201);
      } else {
        res.send(500);
      }
    })
  };

  this.getSpecific = function (req, res) {
    return reference.once("value").then(function(data){
      var id = req.params.id;
      var user = data.val()[id];
      user.id = id;
      return res.send(200, user);
    });
  };

  this.remove = function (req, res) {
    var door = reference.child(req.params.id);

    door.remove(function (err) {
      if (err) {
        res.send(500);
      } else {
        res.send(200);
      }
    })

  };
}
DoorsController.constructor = DoorsController;
module.exports = DoorsController;


text:
Q: com.google.zxing.NotFoundException while using zxing to decode qrcode We are using zxing to decode qrcode from images, most of qrcode could normally be extracted from the original images, but some not. I will show the decoder codes and shall we together discuss about what causes NotFoundException and find out solutions.
First of all, need some zxing dependencies:
<dependency>
    <groupId>com.google.zxing</groupId>
    <artifactId>core</artifactId>
    <version>3.2.1</version>
</dependency>

<dependency>
  <groupId>com.google.zxing</groupId>
  <artifactId>javase</artifactId>
  <version>3.2.1</version>
</dependency>

Then see the detail codes:
 public static String decodeQrCode(BufferedImage image) throws DependencyServiceException
{
    // Convert the image to a binary bitmap source
    LuminanceSource source = new BufferedImageLuminanceSource(image);
    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

    // Decode the barcode
    QRCodeReader reader = new QRCodeReader();
    Result result = null;
    try
    {
        result = reader.decode(bitmap);
    }
    catch (NotFoundException | ChecksumException | FormatException e)
    {
        throw new DependencyServiceException(e);
    }
    return result == null ? null : result.getText();
}

public static void main(String[] args)
{
    File file = new File("/tmp/ivan_qr_code.jpg");
    String qrCodeOriginUrlExtracted = "";
    try
    {
        FileInputStream imageInFile = new FileInputStream(file);
        byte imageData[] = new byte[(int) file.length()];
        imageInFile.read(imageData);

        String qrCodeBase64 = Base64.encodeBase64URLSafeString(imageData);
        BufferedImage image = Base64StringToImageUtil.generateImageFromString(qrCodeBase64);
        qrCodeOriginUrlExtracted = QrCodeDecoderUtil.decodeQrCode(image);
        imageInFile.close();
    }
    catch (Exception e)
    {
        // TODO: handle exception
    }
    System.out.println(String.format("Extracted text from qr code: %1$s", qrCodeOriginUrlExtracted));
}

Errors generated:
Exception in thread "main"  {"errorCode": "3000", "debugInfo":"null","message": "com.google.zxing.NotFoundException"}
at com.waijule.common.util.image.QrCodeDecoderUtil.decodeQrCode(QrCodeDecoderUtil.java:44)
at com.waijule.common.util.image.QrCodeDecoderUtil.main(QrCodeDecoderUtil.java:58)

Caused by: com.google.zxing.NotFoundException
The template qr code provided as following:

Thanks for all the little helps.

A: On the whole, the decode method depends on the specific circumstance, DecodeHintType and barcode reader need to specify in advance. Refer to the open source of https://zxing.org/w/decode.jspx from zxing, pay attention to the method 'processImage'.
Thanks for the followers these days.

redpajama_set_name: RedPajamaStackExchange


It's a really handy (and free) way to see your websites how your color-blind visitors do. At the very least, you should test against Deuteranomaly (effects 6% of men).
I actually discovered this app when I was writing my book on colour management. Up to 10% of all males have some degree of colour blindness, though many are not even aware of it. Rather curiously I gather it's rare among Eskimos and it's much less of common in general among women.
Colour blindness is a very common type of color vision deficiencies. An app like http://enchroma.com helps an individual to identify if he/ she has color blindness or not. Many people suffer from this deficiency and they are not aware of it. This app helps the person to know hat kind of color blindness he/she has.


text:
Krypton - House of El - Review: "Brainiac is Here"
Posted by Milo MJ at March 31, 2018 0 Comments
Krypton MJ Reviews
Krypton 1.02 "House of El" - Review:
Directed by Ciaran Donnelly & Written by Cameron Welsh
The second episode of Krypton continued to explore more of the world that we already knew, essentially acting as the second part of the pilot episode as it put Seg in a position where he was questioning Adam Strange's story, preferring instead now that he has lost everything to go on a mission of revenge and take out the man who had taken what little he had from him, Daron-Vex, which would surely see him suffer the same fate as his parents. This forced Adam to team up with Kem (Rasmus Hardiker), who whilst wasn't exactly a believer of Adam's storyline about the faceless evil heading their way, didn't want to see his best friend dead.
Seg may be a Vex now but he's not going to be taking it lying down, especially as if Adam is right, his grandson will still be known as Kal-El. In a meeting with Vex, Seg tries to request funeral rights for his parents but is quickly shut down. He's gearing up for the assassination attempt only to be confirmed what he had already been told earlier. Val-El, his grandfather, was a brilliant scientist who was corrupted by his belief that a world collector was heading their way. Val's research was deemed heretical in the process, and given that his grandfather also believed what Adam believed, it's enough to convince Seg not to lash out there and then. Seg presents Vex with a more reasonable suggestion at hand, allowing him to join the science guild.
We're still in the early stages of Krypton, but unfortunately, it's spending too much time focused on Seg's assassination plans which we know he's not going to follow through with anyway because Vex is going to be around for future episodes. The revenge storyline is a tried and tested television trope and whilst Krypton has used tropes successfully before, with the death of Seg's parents managing to leave a memorable impression on the audience, it failed here, and it didn't need to take out as much of the episode as it did.
Seg brings the tablet that he stole from Vex to take to Adam and Kem as he reasons that any proof of Brainiac will be on the device. However, it's obvious to anyone that Vex won't leave evidence as damning as this around for anyone to steal, and it's almost certainly going to be tampered with in a way that shuts down Seg's chances of listening to him, in a frustrating way, as it's pretty clear that Seg should have taken this into account. An argument could be made in his defence that he's angry with revenge in mind, but Adam and Kem could have brought this up. I would have also liked to have seen more depth put into Seg's handling of his parents' deaths rather than a simple revenge-driven quest like this, as it's far too one-note and rings hollow, especially as the audience themselves are now ahead of Seg in their belief of Brainiac's existence. It shouldn't have taken Seg that long to catch up.
Meanwhile, Quez-Ul (Gordon Alexander)'s unit is about to raid the Rankless buildings, stripping them of what they already have in the search for Black Zero. Lyta is convinced that this will only lead to more division and resentment between both classes, so she decides to challenge Quez-Ul to a round of combat where the only way out is killing the opposition. This is something that her mother Jayna is less than happy to hear, as she fears that Lyta will be defeated by Quez-Ul fairly easily and does her best to talk her daughter out of it. It looks like she underestimated her daughter however as she is able to emerge victorious in the fight, claiming new leadership over the squadron.
I like that Krypton is adopting a more serialised nature than the Arrowverse, which is largely focused on a bad-guy-of-the-week format coupled with an overarching series arc. House of El proved to be a way where we could get to see what the format of this show was going to look like going forward too. Although I worry by bringing Brainiac to Krypton this early the writers may be rushing the plot forward a bit, but it's still early stages so there's plenty of room to watch the story unfold from here.
Seg does end up receiving his parents' ashes from Nyssa, who comes under the pretense of giving him some closure but as we see at the end, she's doing her best to win his trust and gain his loyalty, in a rather Machiavellian move. We haven't really been given much time to explore Nyssa's character at the moment but it's clear that her main objective is securing the better interests of her family. Taking their ashes to the fortress, Seg uses their DNA to activate his grandfather's hologram, which finally gives him the definitive proof of Brainiac's existence and explains to him that House El has done its best to bring hope to Krypton no matter what condition the world is in. Val-El stumbled across Brainiac by travelling through the Phantom Zone and exploring multiple different worlds, and tried to warn his people - only too be taken in and killed in response.
Seg ends up returning to Vex, fully on board with stopping the threat now that he's had a talk with the holographic version of his grandfather, and now is dissuaded from his motive of revenge, instead deciding that he will go through with his plan to join the Science Guild, on the condition that he keeps the House of El name, not wanting to wear another quest. Vex is disappointed (you could even say that Vex is quite -vexed) at this, but relents to the Voice of Rao's approval that Seg will wear the crest of the Science Guild as a compromise, meeting them in the middle. It's also good to learn a bit more about the history of Krypton's so far unexplored religion - where we learn that the people of Krypton used to worship many gods, but now they only worship one - Rao. We still could learn a bit more about how the religion element works in this show because the world of Krypton still feels very small and enclosed at the moment, and we haven't quite yet been able to see just how diverse this world has the potential to be. But then the show has to balance a plot with all its world-building that's going on at the moment, so it's understandable that with so much going on, some things are going to be left to the wayside.
And whilst all this is going on, Kem and Adam are teaming up in the background on their own adventure that forces Adam to surrender his Detroit Cap that he hung onto even when changing into more Kryptonian clothing. I must admit that I did enjoy their scenes together much more than the rest of the episode, with the bar scene in particular being a standout where Adam tried to convince Kem that Seg would pay for any services that he required and that Seg had insisted Adam would need alcohol as well. They end up travelling into the icy wasteland outside the city where Adam stumbles across the meteorological abnormality that they were investigating in the first place provided by the data that Seg received for them. It's confirmation that Brainiac is much closer to Krypton than they already realised, and he is already on the planet, having sent a Empire Strikes Back-esque probe out to stake claim to the next world in his path.
The show is still finding out what it wants to be and it has as much promise in its story as it has as plenty of room to go off a cliff completely. It could work on developing some characters a bit more, particularly Adam, but the shorter, ten-episode length of its first season has really allowed for a much more constrained approach than the twenty-plus episodes that the network shows tend to offer. We also got an explanation of sorts this week as to why Superman and other Justice Leaguers didn't join Adam in the as-of-yet unrevealed time machine, as it could only carry one person - him. I'm not sure why but I was kind of expecting Krypton to become a time-travelling adventure with Adam and Seg journeying throughout the DC Comics multiverse, but then again, I suppose there's Legends of Tomorrow for that. What this show does succeed in doing is presenting a story that is compelling even if you remove the Superman time-travel elements from the show completely - there's enough storyline and potential there with the bid for Seg to reclaim his House of El name and the Black Zero conspiracy plot to last at least a season, if not more.
What did you think of House of El? Let me know in the comments section below and be sure to check out the next episode of Krypton on Syfy next Wednesday.


text:
16 days in Europe Itinerary
Created using Inspirock Europe vacation maker
Start: Mumbai, India
Fly to Mulhouse, Bus to Basel SBB, Train to Zurich
End: Mumbai, India
Wed, May 6 - Thu, May 21 Edit
Athens of the Spree
The country's capital and largest city, Berlin is a diverse urban center boasting a lively nightlife and countless things to do.
Kick off your visit on the 7th (Thu): appreciate the history behind Brandenburg Gate, appreciate the history behind The Holocaust Memorial - Memorial to the Murdered Jews of Europe, then make a trip to Reichstag Building, and finally explore the world behind art at Pergamonmuseum. On your second day here, observe the fascinating underwater world at Zoo Berlin, then contemplate the long history of Bebelplatz, and then take in the local highlights with Walking tours.
To find other places to visit, photos, traveler tips, and other tourist information, read Berlin trip planner.
Mumbai, India to Berlin is an approximately 14-hour flight. Due to the time zone difference, you'll gain 4.5 hours traveling from Mumbai to Berlin. Cap off your sightseeing on the 8th (Fri) early enough to travel to Amsterdam.
Parks · Zoos & Aquariums · Tours · Museums
Find places to stay May 6 — 8:
Book Hostel
Brandenburg Gate
See Germany Travel Guide
Venice of the North
Known as one of the greatest small cities in the world, Amsterdam charms visitors with its cool and cozy atmosphere.
On the 9th (Sat), explore the world behind art at Rijksmuseum, then walk around Vondelpark, and then admire the masterpieces at Van Gogh Museum. Keep things going the next day: explore the world behind art at Museum Het Rembrandthuis (Rembrandt House), admire the striking features of Royal Palace Amsterdam, then get engrossed in the history at Anne Frank House, and finally sample the tasty concoctions at Heineken Experience.
For maps, traveler tips, ratings, and other tourist information, read Amsterdam day trip planning tool.
You can fly from Berlin to Amsterdam in 4.5 hours. Other options are to drive; or take a train. In May, plan for daily highs up to 20°C, and evening lows to 10°C. Finish your sightseeing early on the 10th (Sun) so you can drive to Bruges.
Museums · Historic Sites · Breweries & Distilleries · Parks
Find places to stay May 8 — 10:
The medieval town of Bruges centers around a canal, and the architecture of its historical district has made it a World Heritage Site.
On the 11th (Mon), pause for some serene contemplation at Adornesdomein & Jeruzalemkerk, indulge your thirst for a good beer at Huisbrouwerij De Halve Maan, then steep yourself in history at Historic Centre of Brugge, and finally don't miss a visit to The Markt. Here are some ideas for day two: contemplate in the serene atmosphere at Basilica of the Holy Blood, admire the landmark architecture of Belfry of Bruges, then explore the world behind art at Groeningemuseum, then admire the landmark architecture of Stadhuis, and finally contemplate the waterfront views at Minnewater Lake.
For more things to do, photos, traveler tips, and more tourist information, you can read our Bruges online trip builder.
Traveling by car from Amsterdam to Bruges takes 3 hours. Alternatively, you can take a train; or fly. In May, plan for daily highs up to 19°C, and evening lows to 9°C. Cap off your sightseeing on the 12th (Tue) early enough to go by car to Brussels.
Things to do in Bruges
Historic Sites · Museums · Parks · Breweries & Distilleries
Historic Centre of Brugge
Groeningemuseum
The Markt
See Belgium Travel Guide
Capital of Europe
The allure of the multi-cultural capital, Brussels, stems from its mix of political intrigue, artistic influence, historical significance, and a thriving social scene.
Kick off your visit on the 13th (Wed): see the interesting displays at Atomium, then explore the world behind art at Musées Royaux des Beaux-Arts de Belgique, then make a trip to Grand Place, and finally contemplate in the serene atmosphere at St. Michael and St. Gudula Cathedral (Cathedrale St-Michel et Ste-Gudule). On the next day, get in on the family fun at Mini-Europe, see the interesting displays at Musical Instruments Museum (MIM), and then appreciate the history behind Manneken Pis.
To find ratings, other places to visit, traveler tips, and other tourist information, go to the Brussels travel route planner.
Drive from Bruges to Brussels in 1.5 hours. Alternatively, you can take a train; or take a bus. Expect a daytime high around 19°C in May, and nighttime lows around 8°C. Cap off your sightseeing on the 14th (Thu) early enough to catch the train to Paris.
Things to do in Brussels
Museums · Theme Parks · Historic Sites
Musical Instruments Museum (MIM)
A beautiful and romantic city fit for any itinerary, Paris brims with historic associations and remains vastly influential in the realms of culture, art, fashion, food and design.
Start off your visit on the 15th (Fri): stroll through Île de la Cité, explore and take pictures at Eiffel Tower, then admire the striking features of Arc de Triomphe, and finally admire the striking features of Louvre Museum. On the 16th (Sat), you'll have a packed day of sightseeing: walk around Luxembourg Gardens, then explore the world behind art at Musee d'Orsay, and then pause for some serene contemplation at Basilique du Sacre-Coeur de Montmartre.
For other places to visit, more things to do, where to stay, and tourist information, read Paris trip planner.
You can take a train from Brussels to Paris in 2.5 hours. Other options are to drive; or fly. May in Paris sees daily highs of 20°C and lows of 11°C at night. Finish your sightseeing early on the 16th (Sat) to allow enough time to travel to Zurich.
Museums · Historic Sites · Parks · Neighborhoods
Big Small Town
The financial hub of Switzerland, Zurich is most often associated with money and banks.
Kick off your visit on the 17th (Sun): stop by Old Town, admire the landmark architecture of Fraumünster Church, and then explore the activities along Lake Zurich. Keep things going the next day: head outdoors with Zurich Succulent Plant Collection, wander the streets of Bahnhofstrasse, then examine the collection at Uhrenmuseum Beyer Zürich, then take in the architecture and atmosphere at Grossmunster, and finally stroll the grounds of Friedhof Fluntern.
To find traveler tips, reviews, more things to do, and tourist information, read our Zurich day trip planner.
Traveling by combination of flight, bus, and train from Paris to Zurich takes 5 hours. Alternatively, you can fly; or drive. Expect a daytime high around 21°C in May, and nighttime lows around 9°C. Wrap up your sightseeing on the 18th (Mon) early enough to drive to Munich.
Things to do in Zurich
Historic Sites · Neighborhoods · Parks · Nature
Fraumünster Church
See Switzerland Travel Guide
Village of a Million People
Often described as the city of laptops and lederhosen, Munich is an international center of business, engineering, research, and medicine that still maintains a rich cultural heritage and age-old traditions.
Start off your visit on the 19th (Tue): take in panoramic vistas at Frauenkirche, steep yourself in history at Nymphenburg Palace, and then admire the natural beauty at English Garden. Get ready for a full day of sightseeing on the 20th (Wed): take in the spiritual surroundings of St. Michael's Church, don't miss a visit to Marienplatz, then engage your brain at Deutsches Museum, and finally examine the collection at Munich Residenz.
To find ratings, reviews, and more tourist information, use the Munich holiday maker tool.
Traveling by car from Zurich to Munich takes 3.5 hours. Alternatively, you can fly; or take a train. In May in Munich, expect temperatures between 20°C during the day and 9°C at night. Finish up your sightseeing early on the 21st (Thu) so you can travel back home.
Things to do in Munich
Historic Sites · Museums · Childrens Museums · Parks
Nymphenburg Palace
18 days in Austria & Switzerland BY A USER FROM UNITED STATES Vienna · Salzburg · Innsbruck 20 days in Switzerland BY A USER FROM UNITED STATES Zurich · Basel · Bern 20 days in Switzerland BY A USER FROM UNITED ARAB EMIRATES Zurich · Interlaken · Zermatt 50 days in Amsterdam BY A USER FROM GHANA Zandvoort aan Zee · Heineken Experience · Hoge Veluwe National Park 14 days in Paris BY A USER FROM UNITED STATES Île de la Cité · Louvre Museum · Arc de Triomphe 34 days in Europe BY A USER FROM UNITED STATES Amsterdam · Copenhagen · Leknes 60 days in Europe BY A USER FROM TURKEY Istanbul · Belgrade · Zagreb 18 days in Germany & France BY A USER FROM AUSTRALIA Berlin · Munich · Nice 23 days in Paris BY A USER FROM HONG KONG SAR CHINA Paris 15 days in Switzerland BY A USER FROM INDIA Lucerne · Bellinzona · Lauterbrunnen 17 days in Germany, Amsterdam & Brussels BY A USER FROM GERMANY Frankfurt · Dusseldorf · Amsterdam 14 days in England & Paris BY A USER FROM SINGAPORE London · Oxford · Bath
Belgium trip planner
Berlin trip planner
Munich trip planner
Ile-de-France trip planner
Germany travel guide
Specialty Museums · Landmarks · Historic Sites
Germany is the home of high culture, fine art, classical music, world-class sports, award-winning cuisine--and some of the world's best beers. It's also one of the major economic and political powers of the European continent. One of the founding members of the European Union, Germany is a federation of 16 states. Each boasts its own distinct culture, art, cuisine, regional traditions, and array of things to do. The country is known worldwide for its precision engineering and high-tech products. Equally, though, Germany is admired for its old-world charm and what is locally known as gemutlichkeit (coziness). This is one of the easiest countries in the world to explore, offering an abundance of sightseeing opportunities. German transportation runs with German efficiency. Therefore, getting around the various regions is almost always easy, quick, and pleasant. Visit the cities to explore museums, art galleries, modern restaurants, and trendy shops. Also be sure to venture deeper into the countryside. Here, you can discover ancient castles and bustling little villages. Often in these off-the-beaten-path areas, the main tourist attraction remains the simple hospitality of the friendly locals.
Belgium travel guide
Specialty Museums · Historic Sites · Monuments
A small country packing a big punch in terms of tourist attractions, Belgium sits at the crossroads of Western Europe, its cities soaked in history and famed for their lively arts, fashion, and dining scenes. Although it advertises itself simply as "A Food Lover's Dream," this country of just 11 million people boasts a rich architectural heritage, world-famous breweries, pristine natural areas, and touching memorials marking major battlegrounds from both World War I and World War II. Put the country's elegant cities of Brussels and Bruges at the top of your itinerary, but don't forget that Belgium's less-explored countryside offers dense forests, rolling hills, and lush valleys.
Switzerland travel guide
Bodies of Water · Mountains · Landmarks
Immerse yourself in a snow-capped mountain wonderland in Switzerland's serene Alpine setting. See the world-renowned Matterhorn, Switzerland's second-highest mountain at 4,478 m (14,962 ft) tall, or zoom down the mountains on toboggan, ski, or snowboard. In the warmer seasons hike around the rolling green hillsides covered with pine trees and picturesque aqua blue lakes. Luxurious cities dotted with cozy wooden chalets and colorful flowerbeds balance quaintness with first-class cultural offerings. Indulge in the country's opulence of milk chocolate, cheese fondue, and keg-carrying St. Bernard dogs.
Images and information provided through Inspirock ® Trip Planner


Lord of The Rings & MERP - So...what's this?
I've never ever played the LotR miniature game by GW.
I've heard some rather harsh reviews ("Like Warhammer but not as good" etc) but that's really just expression of personal tastes.
Some of the minis are kind of cool, however.
And so is Tolkien's world in many ways.
Thus: Do any of you other people here have any experience on the miniature game and if so, what is good and what is bad about it?
I've played a few games of LotR and own the Fellowship boxed game, which contains the rather unusual combination of Moria Goblins and Last Alliance Men and Elves (2 forces which as far I know have never met) the rules are pretty good, not really much like GW's normal Warhammer based skirmish games (I have yet to read of play the new mass-battle LotR game). The game has some interesting mechanics like a Priority based turn system (works a little like initiative in D&D) and hero's Might Points (allowing Heroes to alter dice rolls their advantage) the first edition (the one I own) had movement and ranges written in both cm and Inches which is kinda confusing, but I believe they phased that out in later versions.
The miniatures are nice, but I'm not keen on the fact they are 25mm thus making them for the most part incompatible with the majority of my collection of 28/30mm fantasy miniatures. Having said that the monsters work well with larger models and the LotR range has allowed me to add a Balrog, a giant vampire-demon type thing, some Giant Spiders, a few different looking Trolls and some other critters to my collection.
Well, I'll try to see if I can find a cheap copy of the rulebook somewhere.
This actually looks kind of cool!
As for Warmaster, I have yet to play it or read the rules.
I've never even seen it!
But it looks kinda cool, like a 6mm epic game almost. I wonder if there's a teeny Smaug for it?
I wonder if there's a teeny Smaug for it?
1: Does it come with the terrain?
2: Prepainted or proper minis?
yeah it comes with the hill, which I remember GW later repackaged as a generic plastic two part hill.
The miniatures are unpainted, though I have a feeling they're produced in 'strips' like the warmaster figures.


Enchantico boxes are available for 4 age groups - 5-6, 7-8, 9-10 and 11-12.
Each Enchantico box contains a minimum of 2 books plus activities plus collectibles.
The books are handpicked by experts from the latest releases 12-15 top publishers Indian and International.


text:
Палио̀милос () е село в Кипър, окръг Лимасол. Според статистическата служба на Република Кипър през 2001 г. селото има 31 жители.

Намира се на 3 km южно от Продромос.

Източници

Селища в окръг Лимасол


text:
Women and COVID vaccination
Vaccines are the best news to emerge from the ongoing COVID-19 pandemic. The rapid and successful deployment of the new vaccines offers a way to limit the devastating effects of the pandemic – for men at least.
Unfortunately, the recent reports of thromboembolic events (clotting) may raise new concerns amongst the unvaccinated. These reports initiated with vaccines based on the adenovirus RNA, for example, the Johnson and Johnson/Janssen vaccine and the Oxford AstraZeneca (AZ), and now include the Pfizer and Moderna vaccines.
Vaccines were designed to minimise mortality and hospitalisations – not eradicate the virus
If it weren't enough, as I wrote last month, that misinformation abounds about the effect of vaccination on subsequent pregnancy, women are now being targeted with scare tactics about clotting, especially in the brain, and breakthrough infections with the Delta variant.
The facts speak for themselves without the scare rhetoric. There is some risk in everything we do – that is called absolute risk. However, it is important to place the risk into perspective – that is called relative risk. This is especially so for women because there is so little data specifically to help us.
The relative risk of a brain haemorrhage following the AZ vaccine is approximately 5 per one million doses, which is lower than the number of brain haemorrhages observed in the last 3 years of influenza vaccinations. The AZ results are also much lower than the risk amongst current oral contraceptive and hormone replacement users. Women on hormonal products are three times as likely to suffer from clots than those not using these products.
All of the 12 reported patients who had brain haemorrhages after vaccination were women younger than 60 years. Seven had known risk factors for clotting – obesity, thyroid disease and oral contraceptive use. Whether they were using HRT was not reported.
It is a shame that the message of diversity in research is still in its infancy. Now, more than ever, when vaccination can help limit mortality from COVID, very little attention is being paid to prevent women dying from COVID through protective vaccination. Perhaps the lack of specific data can work to our benefit. In addition to the groups already identified at risk, women on hormones should consider taking 325mg of aspirin with each dose of vaccine. That makes the platelets in our blood, which are largely responsible for the clots, less sticky and clotting in the short term.
Also, it is important to remember the limitations of COVID vaccination. The COVID vaccines were designed to minimise mortality, morbidity and hospitalizations from COVID infections. Besides, it is known that brain haemorrhage occurs as a result of severe COVID infection anyway. Seven percent of people who get COVID develop clots and that rises to nearly half in those patients who are admitted to intensive care units.
To that end, the vaccines are very effective – even against subsequent Delta variant infections after vaccination. The risk of death and hospital admissions from COVID were reduced by half in vaccinated populations. Women – and men – should consider all the facts when deciding to get vaccinated.
COVID vaccine: Is anything safe these days?
To boost or not to boost: that is the question


CAVU's Flying Theatre is a modular system that can be configured into varying sizes using eight (8) passenger seat units on multiple levels facing an immersive screen.
Once riders are loaded and their lap bars secured, the seat unit rolls forward into the screen. Each module has electric actuators and produces six Degrees of Freedom motion, (6 DOF) including pitch, roll, heave, yaw, surge and sway, in synchronization with the projected media, sound and/or special effects. Wind, water mist or multiple scents can be introduced from the integrated canopy above.
CAVU's Flying Theatre delivers unparalleled aerial adventures such as soaring over landmarks or high adrenaline aerial flying experiences. When the show ends, all seating modules return to the load/unload position and guests exit the theater as new guests enter, minimizing load/unload times.


Retail - BN Licensing B.V.
In an industry that employs more than 12 percent of the American workforce and handles consumer spending worth $4.1 trillion, the retail sector provides a rich source of humor stemming from the unique interactions between employees and shoppers. Retail, the first-ever syndicated comic strip to focus solely on this sector, presents a hilarious look at the retail industry by chronicling the daily events at the fictitious Grumbel's department store.
Created by Massachusetts retail management veteran Norm Feuti, the humor of Retail plays out through the day-to-day trials and triumphs of four main Grumbel's department store employees and the customers they encounter.


The OAC 2012 Aboriginal Arts Education Project "Teaching from the Knowledge Canoe". Working with teacher Stefan Barton and his class to share Indigenous traditional ways and contemporary issues through the building of a 12 foot, 40 pounds canoe named Nadjiwan (the beautiful). Launched National Aboriginal Day June 21, 2013.


We are working with LGBT Youth Scotland to offer members FREE LGBT Awareness training on the morning of Saturday 1st June.
4. Creating an LGBT inclusive learning environment for early years and primary.
How can we better support pupils?
In response to demand from members, AHDS is establishing an LGBT Network. The first meeting of the network will take place on the afternoon of 1st June and will aim to provide members with opportunities to network and to support one another when facing prejudice based on LGBT within the workplace. If you want to find out more and to help shape this new network then we would be delighted to welcome you to this event.
Members can choose to attend the morning session, the afternoon session or the whole day. If booking the whole day lunch will be provided. Full details will be provided once your booking has been received.