During a recent brinner (breakfast for dinner) at our Gospel Community one of our friends was talking about a reverse breakfast crock pot casserole. You make be thinking, what makes it reverse? In this case you put the crock pot on at night and then it is ready in the morning you wake up! My husband was immediately hooked and he researched how long to cook it and what ingredients we wanted to put inside of it. I must say we really liked this and my husband did an awesome job finding out about this! All props go to him. :) Hope you enjoy too! We put ours on to cook on a Saturday evening and it was perfect for Sunday morning before church.
1. Bake bacon in the oven at 400 degrees for 20 minutes for crispy bacon. Place cooked bacon on a plate with paper towels and dry off grease.
2. Brown crumbled sausage in a sauce pan until cooked all the way through, then set aside.
3. Put half the bag of frozen hashbrowns in the crock pot. Then salt & pepper to taste.
4. Put half the crumbled bacon and sausage on the frozen has browns.
5. Put half the chopped green & red bell pepper on top of the meat.
6. Sprinkle cheese over the bell peppers until covered. Repeat these layers one more time so that there is two layers of everything.
7. Wisk together a dozen eggs in a bowl and add a little bit of milk (about ¼ a cup). Sprinkle some garlic powder (about ¼ a teaspoon) in the egg mixture.
8. Slowly pour the egg mixture over all the layers in the crock pot so that it seeps down in the cracks.
9. Cook on low for 6-8 hours the night before you want to serve this delicious breakfast crock pot casserole.
I hope you enjoy eating this delicious breakfast this weekend!
Ben and I absolutely love these little spinach & mushroom quiche cups for breakfast! So much so that after we ate all of the ones that I made on Saturday morning, I made another dozen last night! On the weekends I serve these with sausage patties and toast but during the week I just pack us up 2 each and we eat them at our desk. Yes I know, so glamorous but at least it is a delicious way to start the morning. These are super easy and feel free to get creative with the recipe! How you enjoy these as much as we do.
Adapted from the manillaspoon.com recipe.
Variation: You can substitute the mushrooms with asparagus or bell peppers instead!
2. Heat a little olive oil in a skillet and sauté the mushrooms until they are soft. Approximately 5-6 minutes then set aside.
3. Place the spinach in a skillet and add a little water (about ¼ cup). Cook the spinach on low to medium heat until it is wilted which is approximately 3-4 minutes. Use a spatula to pack the spinach. Drain the excess water really well.
4. In a large mixing bowl, whisk together the eggs until they are combined. Add the cooked mushrooms, spinach, cheeses, and heavy cream to the eggs. Mix well. Then season with salt & pepper to taste.
5. Divide evenly among the 12 muffin cups. Tip: I use a gravy ladle to make sure that I get most of the egg mixture into the actual muffin cups!
Tip: Don't fill them up quite as full as I did. They tend to rise as they bake like cookies!
6. Bake for about 20-23 minutes. You can use a tester/toothpick inserted into the center and make sure that it comes out clean.


Project: Los Angeles Rams Stadium Inglewood CA.
The attached photos of this spreader beam assembly are being used for the construction of the new LA Rams Stadium in Inglewood CA. A large civil contractor is responsible for the precast column segments on the project and the spreader beam assembly will be used for this portion of their work. The unique shape of the precast pieces required a specially designed system that would allow adjustments for multiple precast sizes.
The scope of this job started with detailed shop drawings based on the engineered drawings provided by the customer. In addition to the fabrication of these beams F&M MAFCO also supplied the required shackles to complete the assembly. F&M MAFCO's supply division stocks a large inventory of shackles and thousands of other rigging, welding and construction supplies. Once the fabrication was complete the final task included in F&M MAFCO's scope and required to complete this job was load testing the components per the design requirements. Our customers rely on the added value F&M MAFCO offers for a turnkey job from drawings to delivery. Contact us to learn more about our custom fabrication services!


text:
Il kefiran (o kefran, o grani di kefir) è il complesso di polisaccaridi prodotti dai batteri e lieviti del kefir.

I granuli utilizzati per la produzione del kefir, analizzati al microscopio, si rivelano costituiti principalmente da proteine insolubili e mucopolisaccaridi neutri. La composizione in percentuale di peso secco di questi granuli è: grasso 4,4%, mucopolisaccaridi 45,7%, proteine totali 34,3% delle quali insolubili 27,0% solubili 1,6% amminoacidi liberi 5,6%. Sono stati osservati anche tracce di ferro in forma cristallina e amorfa sulla superficie dei granuli.

Il principale di questi componenti è il kefiran che ne costituisce circa il 45%. Attualmente, il meccanismo con cui i granuli di kefir si formano e crescono non è ancora stato completamente studiato.

Il kefiran è composto da due monosaccaridi, il D-glucosio e il D-galattosio più o meno in eguali proporzioni. La struttura del kefiran non è ancora completamente chiara.

Il kefiran è prodotto nella parte interna dei grani e si suppone che questo avvenga fondamentalmente ad opera dei lattobacilli kefiranofaciens e kefiri.

Esperimenti condotti in Giappone su ratti da laboratorio hanno dimostrato che il kefiran ha proprietà antitumorali e che nei ratti nutriti con kefiran si osservavano riduzioni del tumore della vescica. Altri esperimenti hanno dimostrato che il kefiran ha anche proprietà antinfiammatorie e che contribuisce alla guarigione delle coliti ulcerose.

Bibliografia
 M. Zubillaga, R. Weill, E. Postaire, C. Goldman, R. Caro, J. Boccio, Effect of probiotics and functional foods and their use in different diseases, Journal of Nutrition Research, Elsevier, 2001
 P. R. Marteau, M. de Vrese, C. J. Cellier e J. Schrezenmeir,  Protection from gastrointestinal diseases with the use of probiotics, the American Journal of Clinical Nutrition, 2001

Voci correlate
 Kefir
 Kefir d'acqua

Polisaccaridi

redpajama_set_name: RedPajamaWikipedia


text:
Home/The Walking Dead/However It Ends, The Walking Dead Changed The Zombie Genre Forever
However It Ends, The Walking Dead Changed The Zombie Genre Forever
Whether people love it or love to hate it, The Walking Dead has left its mark on the zombie genre forever — even if the series finale flops.
The Walking Dead is coming to a close after an 11-season run — but no matter how the series ends, The Walking Dead has certainly changed the zombie genre forever. Premiering in 2010, AMC adapted the eponymous comics of Robert Kirkman into a larger-than-life apocalypse series, following a group of survivors as they fought against the undead and human villains alike. The series saw immediate success, amassing several awards, millions of viewers, and a blooming franchise. Built on the shoulders of the zombie films that came before it, The Walking Dead arrived to tell a new kind of apocalypse story
Despite The Walking Dead's success, there have also been setbacks over the years; the show's viewership has started to decrease from its peak in season 5, with many giving up on the series in season 7 and beyond. Ending such a genre-defining series is a monumental task, and there has been a worry among audiences that the Walking Dead finale may not live up to the legacy of the series. The Walking Dead isn't perfect by any means, but even with all the good and the bad, there is one undeniable truth — The Walking Dead has left its defining mark on the zombie genre as a whole.
The Walking Dead Popularized A New Zombie Tone
Historically, zombie movies have been used to share sociopolitical commentary. The early days of the genre explored the fear of Haitian culture and voodoo, the terrifying prospects of a post-nuclear society, the civil rights movement, and the downsides of consumerism. Films like 28 Days Later and Night of the Living Dead use the undead as the perfect backdrop to explore the audience's greatest fears. On the other side of the spectrum are movies like Shaun of the Dead and Zombieland; the zom-coms, or zombie comedies, that deliver the same social commentary through humor.
The Walking Dead proves that these aren't the only tone choices in telling a zombie story. Looking beyond just base survival, the series explores what a post-apocalyptic world would really look like. The undead are a threat in the Walking Dead's apocalypse, but so are famine, disease, weather, and, most importantly, humanity. On top of the danger and death, however, The Walking Dead also focuses on hope for the future and what can come after the insurmountable loss. In moving beyond the typical tone of the zombie genre, The Walking Dead has birthed a new kind of zombie story.
How The Walking Dead's Success Took Zombies Mainstream
Before The Walking Dead hit TV screens, the zombie genre was much more niche. While the horrific and gory nature of the zombie typically appealed to a certain type of audience, The Walking Dead helped to bring the zombie, or Walker, into mainstream media in the early 2000s. While some early zombie movies — especially George Romero's Night of the Living Dead and Dawn of the Dead — were quick to become cult classics, the zombie truly broke out into mainstream media in the early 2000s, all due to the success of franchises like The Walking Dead.
With The Walking Dead's success, it seemed like zombies were everywhere. The 2000s and 2010s saw a large spike in zombie flicks, and The Walking Dead paved the way for those that came after it — including movies like World War Z and Army of the Dead that explored the concept of a post-apocalyptic world outside the typical lens. The Walking Dead has spawned a media empire, including spinoffs, video games, and Walking Dead-specific conventions that bring in thousands of fans a year. While zombie media before it may have seen great success, The Walking Dead sparked the zombie's appeal in mainstream media.
The Walking Dead Blended Zombies & Drama
Zombie movies have historically fallen into the horror genre, and for good reason. The zombie as a mythological figure has roots in a long-standing fear of mortality and the unknowns of the afterlife — so, naturally, the fear and gore surrounding the zombie make for a good horror flick. While The Walking Dead has plenty of gore and horror, the long-term format of television allowed the series to explore beyond the typical shock value of the zombie genre. One of The Walking Dead's greatest assets is its large cast of human characters. In exploring both its living and undead elements, Walking Dead has been able to elevate the zombie genre as a whole.
In telling the story of these survivors in the zombie apocalypse, The Walking Dead was able to blend horror and drama into one compelling narrative. Romance, betrayal, friendship, family, death — The Walking Dead has had it all. Fighting the undead week after week would get redundant over the years, but The Walking Dead's use of its lovable heroes, enigmatic villains, and the drama of their lives brought a new life to the genre. In combining the two, The Walking Dead has created a study of the human condition that has a bit of everything for every viewer.
11 Seasons Of Zombie Apocalypse Is A Big Deal
No matter how The Walking Dead finale plays out, the fact that the series has run for 11 seasons is monumental. Breaking into the double-digits lands The Walking Dead the title of the longest-running zombie apocalypse series, and the show certainly had to fight for it. Despite dipping ratings and a showrunner change later in the series, The Walking Dead has managed to have an impressive run and maintain a loyal fanbase. Even if its viewership has dipped in its later seasons, The Walking Dead was once one of the most-watched series on television, and The Walking Dead has had a heavy influence on the series that have come after it.
The Walking Dead finale doesn't mean the story is done. The Walking Dead has several spinoffs in the making, with multiple successful spinoffs already under its belt. Unlike many zombie stories before it, The Walking Dead doesn't focus just on its survivors, but the ramifications of a post-apocalyptic world. The Walking Dead is proof that a post-apocalypse series can hold more substance than just the gore that is typical with the undead. Whether The Walking Dead has a successful conclusion or fizzles out disappointingly, the fact that it has run for so long is a big deal in and of itself.
The Walking Dead's Last Premiere Title, Description Revealed
Walking Dead's Creator Confirms Whether God Exists in Its Universe
Norman Reedus Jokes Everyone Dies In Walking Dead Series Ending
8 characters who disappeared from 'The Walking Dead' who we want to see show up again on the final episodes
First 'Walking Dead: Dead City' Teaser Reveals a Neon Soaked Zombie Island

redpajama_set_name: RedPajamaCommonCrawl


text:
UNESCO World Heritage Site
About usthe association
Italia Langobardorum Association
The Longobards in Italy. Places of the Power (568-774 A.D.)
is the official UNESCO title given to seven groups of historical monuments that embody the values of the Lombard people, Germanic tribes who settled in Italy between the 6th and 8th centuries AD.
These groups include monasteries, churches and forts, and became UNESCO World Heritage sites in June 2011 because they bear witness to the important part played by the Lombard people in European religious and cultural development during the transition between the Classical and Medieval periods.
The sites are located in Cividale del Friuli (Udine), Brescia, Castelseprio (Varese), Spoleto (Perugia), Campello sul Clitunno (Perugia), Benevento and Monte Sant'Angelo (Foggia).
Tourismtourist information
Didacticseducational resources
The Italia Langobardorum Association has launched numerous activities designed to raise the awareness of the general public and visitors with regard to the interesting components of the serial site that led to its World Heritage listing.
In addition, with funding from the MiBACT central development office (Law 77/2006), the association has designed and is producing a variety of teaching aids for school use, for both pupils and teachers. The purpose of these tools is to encourage and facilitate the study in depth of the Lombard people and the monuments in the site network.
Documentary film, made in partnership with the IULM University Archaeological Heritage Communication & Development Unit, trailer
Teaching texts on the Lombards, download
Guide to network publications, purchase
Educational Lombards game, purchase
Interactive tables for each UNESCO site component
The Longobards
The Longobards in Italy
The Longobard sites
The Longobards & UNESCO
Copyright © 2021 Longobards in Italy. Places of the power (568-774 d.c.). All Rights Reserved.


In a healthcare environment where costs continue to skyrocket, CME is here to help devise a strategy to manage employee wellness. With our strategic partnerships, CME can provide your company with the tools necessary to achieve an effective wellness and prevention strategy to preserve employee focus, productivity, and good health. Your employees will have access to renowned health related resources.
By utilizing these resources, your employees will make knowledgeable decisions concerning benefits, providers, and treatments, which will lower their overall health risks. CME can implement a wellness program that will lead to lower costs and improved outcomes.
CME will help you develop a dynamic health management strategy. We will analyze your workforce demographics and claims experience in order to identify potential risks and recognize cost savings opportunities. As risks are identified, our benefits team will guide you in selecting the best communications and interventions to reach and aid your employees in receiving the appropriate care.


1. Wash, dry and cut lady finger with slit in the center.
2. In a pan add mustard oil, sauté onions. Add lady fingers and put all spices.
3. Let it cook for 10-15 min with frequent stirring, till lady finger becomes soft and tender.
4. Add tamarind pulp and jaggery to it to give a nice sweet and sour flavour to Lady finger.
5. Cook for 2-3 min and serve hot with Chapati.


text:
You are here: Home / Events / Music / ELECTRIC ZOO: TRANSFORMED, NEW YORK'S BIGGEST ELECTRONIC MUSIC FESTIVAL
ELECTRIC ZOO: TRANSFORMED, NEW YORK'S BIGGEST ELECTRONIC MUSIC FESTIVAL
August 30, 2015 Comment Off 63 Views
ELECTRIC ZOO: TRANSFORMED
–NEW YORK'S BIGGEST ELECTRONIC MUSIC FESTIVAL-
REVEALS SPONSOR ATTRACTIONS,
SET TIMES & FESTIVAL MAP
Main stage, Electric zoo: transformed 2015.
Riverside stage, electric zoo: transformed 2015.
Electric Zoo: Transformed, the three-day electronic music festival taking place September 4-6 at Randall's Island Park in New York City with headliners Above & Beyond, Alesso and The Chemical Brothers, is just around the corner. For the stellar musical line-up boasting over 90 artists and brand new staging and production, the event is teaming up with a wide group of sponsors to bring to the city the most spectacular Labor Day Weekend event yet.
Festival attendees will experience exclusive benefits at ELECTRIC ZOO from our sponsors including: Great views of the main stage from T-Mobile's #MusicFreedom Lounge with a VIP double-decker viewing deck, a special T-Mobile ferry with its own DJ (simply show your T-Mobile phone for Fast Track Entry at both the Manhattan ferry stop and East Festival Entrance on Randall's Island), plus, T-Mobile will unleash the livestream on Beatport's channel on Twitch, where fans around the world can watch the festivities online (additional details to be announced very soon); MasterCard is sponsoring the Hilltop Area and an exclusive viewing deck, as well as delivering Priceless Surprises to its cardholders all weekend long; MillerCoors is back at the festival for their sixth year, this time to pour and sample their cider Smith + Forge; And Smirnoff will have two "Rendezvous Lounges" where festival goers can take a break with Smirnoff specialty cocktails.
vitaminwater will also be at ELECTRIC ZOO: TRANSFORMED, sponsoring Treehouse, the newly added festival getaway. It's the first time ever the festival will have a shaded area by the East River, featuring a curated stage of NYC local DJs including: Ace Alvarez, Ajai Alai, Dev Bhandari, Dudenguy, Fahad, George Vala, Jean Pierre, Minutia, Nathan Kersaint, Repete, Salvo, Shahar, Shneur & Teo, NRS and Tal Ohana back to back with Bru. The #1 nutrient-enhanced water beverage will be offering samples and motivating fans to #hydratethehustle.
Other sponsors include: Red Bull, the official energy drink of ELECTRIC ZOO: TRANSFORMED; Diff Sunglasses, who will be selling sunglasses and festival eyewear; Selfeo App, a new app launching this fall who are sponsoring all three water stations as part of Celebrate Safe; Beatport, who will be sponsoring the industry and artist lounges backstage; And Secret, the major deodorant brand, who will be sharing samples on Friday, September 4 tokeep festival goers feeling fresh. Snapchat will be running a Live Story to capture the experience on the ground, which will also include some of the festival's sponsors.
ELECTRIC ZOO: TRANSFORMED's charity partner for its third year is LifeBeat whosebrand ambassadors will be handing out condoms and information on-site.
Other sponsors in-kind servicing backstage areas are Hubert's Lemonade, Vita Coco, L'ANZA Healing Haircare and Core perfectly balanced water.
For more information on Electric Zoo: Transformed, please visit: www.electriczoofestival.com.
Set times for the festival can be found at www.electriczoofestival.com/set-times/.
Check out the Electric Zoo: Transformed official festival map:
In : Events, Music
Previous article TIGUE ANNOUNCES DEBUT ALBUM PEAKS; SHARES NEW TRACK "SITTING" (FEAT. KID MILLIONS) AND ALBUM TRAILER
Next article Stream The Jet Age's Destroy.Rebuild at PureVolume; Pre-Order Destroy.Rebuild via iTunes; D.C. Record Release Show Announced
Bells will be Ringing: It's Spotify Christmas Singles Time
Jason Stuart "Shut Up, I'm Talking: Coming Out in Hollywood and Making it to the Middle from CCB Publishing"
PRINCETON UNIVERSITY CONCERTS ANNOUNCES COMPREHENSIVE SCHEDULE OF PUBLIC EVENTS FOR THE GUSTAVO DUDAMEL RESIDENCY
MASSIVE WORLD HEADLINE "BANDITO TOUR" ANNOUNCED MAKING A STOP AT AMALIE ARENA ON SATURDAY, NOVEMBER 3
Natural Health Improvement Center of Osprey is a progressive health practice that has a passion for providing natural solutions to anti- aging and optimal health without the use of medications or surgical procedures
Maestro Gustavo Dudamel, Princeton University Concerts' first Artist-in-Residence and current Music & Artistic Director of the Los Angeles Philharmonic, will return to the Princeton University campus on Monday, January 7, 2019 for a three-day visit through Wednesday, January 9, 2019
Composer Sid Richardson wins the 2018 Hermitage Prize; Richardson, a composition student at The Aspen Music Festival and School, receives a six-week residency at the Hermitage Artist Retreat in Englewood
The Crypt Sessions Presents Thibaut Garcia on November 14; The fast-rising young French/Spanish guitarist will play music composed and inspired by Bach, from his new Erato album Bach Inspirations. Composers include Heitor Villa-Lobos, Agustín Barrios Mangore, and Alexandre Tansman
Pittance Chamber Music Announces Fifth Anniversary Season; First concert September 30, 2018; 3:00 p.m. An Afternoon with John Walz and Friends
LILY ALLEN performed "Trigger Bang" and "Not Fair" on Last Call with Carson Daly


The Whitecourt Curling Club celebrated its 70th anniversary yesterday with a ribbon-cutting ceremony at the facility.
The club opened in 1948 and was originally located where the present-day Whitecourt Town Office building is.
The current president of the curling club, Jim Harris on the milestone.
Harris says the club will be doing a number of activities throughout the year to help commemorate the 70th anniversary.
Members and the public can find all the information and events on the curling club's facebook page.


With Black Friday and Thanksgiving foot traffic slowly decreasing and online sales booming, many stores find it unnecessary to open their doors on Turkey Day. Thanksgiving Day is on Thursday, November 22, 2018, this year, and nearly 100 well-known national and regional retailers will be closed. Some stores will also be closed on Black Friday 2018, but that list has remained stable in recent years.
Here is the official list of stores that will be closed on Thanksgiving Day in 2018. BestBlackFriday.com personally confirmed the closed status with a representative or PR contact from each of these retailers, and the list will be updated daily as more stores make their decision. Also see our expected Stores Open on Thanksgiving Day 2018 list and our Black Friday 2018 Store Hours.
As more stores confirm their status with us, we will add them to the above closed list. Last year, GameStop shocked everyone by announcing it would be open on Thanksgiving after being closed the previous few years. On the other hand, Stein Mart and Shoe Carnival decided to close last year after being open in previous years. REI started a very small trend of a handful of stores closing on Black Friday a few years back, but that has leveled off and we are not expecting any notable additions this year. You can review last year's list to get an idea of what other stores should eventually be added to the list. Some stores will wait until their official flyer is released to reveal their status, so you can see our Black Friday 2018 Ads for more confirmations.
Will There Be Any Shocking Additions to the List in 2018?
Most likely not. While stores like Stein Mart and Shoe Carnival reversed course last year and closed on Thanksgiving, the more popular GameStop decided it needed to be open. While many Americans do not view stores deciding to open on Thanksgiving in a favorable light (more on that below), the fact is many major retailers just cannot afford to close. Despite Thanksgiving foot traffic slowly declining, the number of Americans who frequent stores on that day is still extremely high, which means the big boys, including Walmart, Target, Best Buy, Macy's, and Kohl's, will all likely stay open.
Even though it is unlikely any major retailer decides to make a stand and close its doors on Thanksgiving Day 2018, there is a strong chance a second-tier store decides to do it for the first time. It will most likely be a regional department store or a niche retailer that can get away with closing while also benefiting from the positive press.
Isn't Closing on Thanksgiving Day Bad for Business?
Despite there being tremendous opportunity for more sales by being open on Thanksgiving, many stores are opting to stay closed. Every store has its own personal reason for the decision, but we have noticed a common theme over the years — family time. Retailers understand that Thanksgiving is one of the top family-oriented holidays, and people just do not want to work. In addition to taking care of employees, many stores have also told us they do not want to force their customers into thinking they must shop in-store on Thanksgiving Day to get the best deals. We agree with the stance and commend stores into giving employees a much-needed break for Turkey Day.
Conversely, we do not believe that stores who remain open on Thanksgiving Day are evil. Many stores allow employees to volunteer to work before assigning shifts to fill in the gaps. In other situations, some people do not mind working or may actually prefer to work. We have had numerous retail employees reach out to us over the years stating their desire to work on Thanksgiving for various reasons.
In the end, many of the stores on the closed list still have online sales on Thanksgiving. Additionally, shoppers can simply wait a few more hours to take advantage of the numerous in-store discounts.
In addition to confirming their closed status with us, a few retailers issued statements and expanded reasons on why they made the tough decision. Here are a few notable ones.
2018 Survey Update – We have just completed our 2018 Thanksgiving Day shopping survey. Here are a few important stats pertaining to the American public's opinion regarding stores that decide to open on Thanksgiving Day.
We surveyed 1,069 Americans on September 30, 2018. The margin of error is ±3.1%. In other words, only 24.67 percent of Americans actually favor Thanksgiving openings, while 47.66 percent dislike Thanksgiving openings.
For comparison purposes, see stats from last year's survey below.
According to our annual Thanksgiving Shopping Survey from 2017, 57.53 percent Americans said they were against stores being open on Thanksgiving, with 36.87 percent strongly against them. Only 16.22 percent said they favor Thanksgiving openings, with 5.60 percent stating they strongly favor it.
Because of Thanksgiving Blue Laws, most retailers located in Massachusetts, Rhode Island, and Maine will be forced to close on Thanksgiving Day. While many consider such laws outdated and not relevant in 2018, they remain in place and will likely still be place as November approaches. That means every Walmart, Target, Best Buy, Kohl's, Macy's, JCPenney, and GameStop location will be closed in those states. Other less notable stores will also be closed.
For practical reasons, restaurants, gas stations, and small grocery stores are allowed to remain open. The restriction is mainly on large supermarkets and large retail stores that are often associated with Black Friday shopping. The good news is anyone living in Massachusetts, Rhode Island, and Maine can take advantage of online sales on Thanksgiving.
Despite brick-and-mortar shopping on Thanksgiving still being a popular thing, online sales are higher than ever. According to Adobe, shoppers spent $2.87 billion online on Thanksgiving last year, which was 18.3 percent higher than the previous year. With more stores offering online doorbusters at similar prices to the their offline doorbusters, it makes sense that additional people are opting to shop online. Additionally, more stores have opted to close on Thanksgiving in recent years, which gives shoppers less opportunity overall to shop in-store on Turkey Day.
According to ShopperTrak, Thanksgiving foot traffic was down last year, while Black Friday foot traffic remained fairly stable. As ShopperTrak notes, shoppers are realizing they do not have to shop in-store on Thanksgiving to get the absolute lowest prices. Instead, they are purchasing online or shopping in-store on Black Friday or during Thanksgiving weekend.


text:
Q: Elixir: Date.to_string returns different formats for server in US and local server in UK I understand the api Date.to_string converts the given date to a string according to its calendar, so I get format "8/22/18" for a server hosted in US and "2018-07-30" for a local server in UK
Is there a way to retrieve the format from the calendar?

A: If you're OK with always printing in the ISO 8601 format, you can use Date.to_iso8601. If not, I suggest you use the Timex library instead (see formatting in particular):
iex> Timex.format({2013,8,18}, "{YYYY}-{M}-{D}")
{:ok, "2013-8-18"}

A: From digging into the source code, I found that Date.to_string(~D[2018-07-30]) will always return the string "2018-07-30" no matter which country you run it from.
If you look into where Date.to_string comes from (by following: Date.to_string
then date_to_string)
We find that the function simply returns:
"#{year}-#{month}-#{day}"

redpajama_set_name: RedPajamaStackExchange


text:
Q: In ARCore, how do I best place a triangle in my world near a Pose, that I can use for ray intersection? I'm working with ARCore in Android Studio using java and am trying to implement ray intersection with an object.
I started with Google's provided sample (as found here: https://developers.google.com/ar/develop/java/getting-started).
Upon touching the screen, a ray gets projected and when this ray touches a Plane, a PlaneAttachment (with an Anchor/a Pose) is created in the intersection point.
I would then like to put a 3D triangle in the world attached to this Pose.
At the moment I create my Triangle based on the Pose's translation, like this:
In HelloArActivity, during onDrawFrame(...)
//Code from sample, determining the hits on planes
MotionEvent tap = mQueuedSingleTaps.poll();
if (tap != null && frame.getTrackingState() == TrackingState.TRACKING) {
    for (HitResult hit : frame.hitTest(tap)) {
        // Check if any plane was hit, and if it was hit inside the plane polygon.
        if (hit instanceof PlaneHitResult && ((PlaneHitResult) hit).isHitInPolygon()) {
            mTouches.add(new PlaneAttachment(
                ((PlaneHitResult) hit).getPlane(),
                mSession.addAnchor(hit.getHitPose())));

            //creating a triangle in the world
            Pose hitPose = hit.getHitPose();
            float[] poseCoords = new float[3];
            hitPose.getTranslation(poseCoords, 0);

            mTriangle = new Triangle(poseCoords);
        }
    }
}

Note: I am aware that the triangle's coordinates should be updated every time the Pose's coordinates get updated. I left this out as it is not part of my issue.
Triangle class
public class Triangle {
    public float[] v0;
    public float[] v1;
    public float[] v2;

    //create triangle around a given coordinate
    public Triangle(float[] poseCoords){
        float x = poseCoords[0], y = poseCoords[1], z = poseCoords[2];
        this.v0 = new float[]{x+0.0001f, y-0.0001f, z};
        this.v1 = new float[]{x, y+ 0.0001f, z-0.0001f};
        this.v2 = new float[]{x-0.0001f, y, z+ 0.0001f};
}

After this, upon tapping the screen again I create a ray projected from the tapped (x,y) part of the screen, using Ian M his code sample provided in the answer to this question: how to check ray intersection with object in ARCore
Ray Creation, in HelloArActivity
/**
 * Returns a world coordinate frame ray for a screen point.  The ray is
 * defined using a 6-element float array containing the head location
 * followed by a normalized direction vector.
 */
float[] screenPointToWorldRay(float xPx, float yPx, Frame frame) {
    float[] points = new float[12];  // {clip query, camera query, camera origin}
    // Set up the clip-space coordinates of our query point
    // +x is right:
    points[0] = 2.0f * xPx / mSurfaceView.getMeasuredWidth() - 1.0f;
    // +y is up (android UI Y is down):
    points[1] = 1.0f - 2.0f * yPx / mSurfaceView.getMeasuredHeight();
    points[2] = 1.0f; // +z is forwards (remember clip, not camera)
    points[3] = 1.0f; // w (homogenous coordinates)

    float[] matrices = new float[32];  // {proj, inverse proj}
    // If you'll be calling this several times per frame factor out
    // the next two lines to run when Frame.isDisplayRotationChanged().
    mSession.getProjectionMatrix(matrices, 0, 1.0f, 100.0f);
    Matrix.invertM(matrices, 16, matrices, 0);
    // Transform clip-space point to camera-space.
    Matrix.multiplyMV(points, 4, matrices, 16, points, 0);
    // points[4,5,6] is now a camera-space vector.  Transform to world space to get a point
    // along the ray.
    float[] out = new float[6];
    frame.getPose().transformPoint(points, 4, out, 3);
    // use points[8,9,10] as a zero vector to get the ray head position in world space.
    frame.getPose().transformPoint(points, 8, out, 0);
    // normalize the direction vector:
    float dx = out[3] - out[0];
    float dy = out[4] - out[1];
    float dz = out[5] - out[2];
    float scale = 1.0f / (float) Math.sqrt(dx*dx + dy*dy + dz*dz);
    out[3] = dx * scale;
    out[4] = dy * scale;
    out[5] = dz * scale;
    return out;
}

The result of this however is that, no matter where I tap the screen, it always counts as a hit (regardless of how much distance I add between the points, in Triangle's constructor).
I suspect this has to do with how a Pose is located in the world, and using the Pose's translation coordinates as a reference point for my triangle is not the way to go, so I'm looking for the correct way to do this, but any remarks regarding other parts of my method are welcome!
Also I have tested my method for ray-triangle intersection and I don't think it is the problem, but I'll include it here for completeness:
public Point3f intersectRayTriangle(CustomRay R, Triangle T) {
    Point3f I = new Point3f();
    Vector3f    u, v, n;
    Vector3f    dir, w0, w;
    float     r, a, b;

    u = new Vector3f(T.V1);
    u.sub(new Point3f(T.V0));
    v = new Vector3f(T.V2);
    v.sub(new Point3f(T.V0));
    n = new Vector3f(); // cross product
    n.cross(u, v);

    if (n.length() == 0) {
        return null;
    }

    dir = new Vector3f(R.direction);
    w0 = new Vector3f(R.origin);
    w0.sub(new Point3f(T.V0));
    a = -(new Vector3f(n).dot(w0));
    b = new Vector3f(n).dot(dir);

    if ((float)Math.abs(b) < SMALL_NUM) {
        return null;
    }

    r = a / b;
    if (r < 0.0) {
        return null;
    }

    I = new Point3f(R.origin);
    I.x += r * dir.x;
    I.y += r * dir.y;
    I.z += r * dir.z;

    return I;
}

Thanks in advance!


A group of Boston Parent Bloggers were invited to sample the menu at the new Smashburger at the brand new University Station in Westwood.
Just some of what we sampled tonight @Smashburger @universitystn. Being a blogger is a tough job sometimes.


Re-Juvinex Cream – Will It Make YOU Look Younger?
When you start noticing the visible signs of aging on your face, your heart might begin to sink. "Who is this person in the mirror staring back at me?" you might wonder. In fact, you feel younger than ever on the inside, but on the outside, you're starting to look like your mother. Every woman's fear! Okay, maybe your mom is banging with the skin of a teenager. But that's not the norm. Either way, you want to feel young as long as possible. And that's why we are here doing this review of Juvinex. An anti aging cream that may help reduce the appearance of wrinkles! Or even help minimize the possibility that you'll develop more lines and wrinkles. Curious to learn more? Continue reading this review of Juvinex Cream! Or, if you're ready to start with this exciting new anti aging product, just click any button here now!
Why would you want to try Juvinex? To start, most dermatologists will recommend anti aging products to anyone over 30. Is this you? It's both a preventative and proactive measure to include an anti aging product into your routine. So if you haven't got an anti aging product in your skincare regimen yet, the time to start may be now! And Juvinex Anti Ageing Cream may be the product for YOU. In this review, we'll be going over this anti aging cream's ingredients, how it's supposed to work, and then you can decide if it's right for you. But maybe you don't have time to read a review. That's ok! Just tap the banner below now if you're ready to see what Juvinex Anti Aging Cream can do for you!
Juvinex works with a natural ingredient matrix. It contains three key ingredients that make Juvinex Anti Aging Serum special. According to Juvinex, their product with their special ingredients will aid with collagen synthesis. And since collagen is so important to youthful looking skin, this is good that it is included in this formula. However, we don't know how the ingredient, C-50, is supposed to help promote collagen synthesis. C-50, apparently, is a "stable Vitamin C," and, based on this information we have gathered from this registered brochure, it may help with collagen synthesis, especially when combined with another active ingredient in the Juvinex Formula, vitamin E. Since this is a commercial document, we can't say for sure it is reputable. That's why we recommend doing your own research if you are skeptical.
Based on our research, we can't say for certain this product will work. That's because there are many other factors that play into which anti aging product will work for you. Also, we don't know of any studies done on Juvinex Creme in particular. But we DO know that it takes some trial and error before you find the right anti aging product for YOU. This could be the one. If you are skeptical, we recommend going to the Official Juvinex Website. There, you can find information about any trial offers that may be available. If you can get a trial offer, that would be a good way to try this product out before you make a longer term commitment. So click any button here to inquire about Juvinex Trial offers now!
You Always Wear Sunscreen – Duh! This is a no-brainer that we need to emphasis again and again. Sun damage is among the TOP reasons you develop wrinkles and fine lines.
You're Avoiding Processed Foods – Eat whole foods. Not the grocery store. Just the foods.
You Sleep On Your Back – Sleep on your back? Yes! Then you won't have the pressure of your pillow rubbing up against your face, exacerbating wrinkles and engraving little lines into your skin.
Your Skin Routine Is Simple – Once you find a gentle cleanser, exfoliant, and anti aging product that works for you, stick to them and keep the routine simple. Too many products can actually damage your skin.
You Stop Obsessing With Being Tan – Need we say more? If you're obsessed with being tan, your skin is going to take a hit faster than people who accept and embrace their paleness.
You can get this product by going to the Official Juvinex Website! Click any button here to go to this site and get your new anti aging product! Who knows? This could be the product that turns the hands of time around on your face and gives you that youthful glow once again! So act now while supplies last!
Rejuvenate With Re-Juvinex Anti Aging Cream!


The first day of school for Eastern Pulaski students will be a bit later the next two years. Under the 2019-2020 school calendar approved by the school board Monday, students' first day of class will be Wednesday, August 14, while the last day will be Friday, May 29.
In the wake of last month's fatal school bus accident, the Eastern Pulaski Community School Corporation may be retiring the number 16 as a bus number. The school board will consider a resolution tonight prohibiting the use of the number 16 on any of the corporation's buses, out of respect for those affected by last month's accident.
The Culver Community Schools Corporation is asking for input on next year's school calendar. "There's going to be a survey that's going to go out next week," Superintendent Karen Shuman says, "to make sure that we get community and parent input on our school calendar for the '19-'20 school year." She says school officials don't have any specific changes in mind yet, but instead would like to make a decision based on the data received from the survey.
The Knox School Board approved the corporation's 2019-2020 school calendar last week. Students' first day of class will be August 6, 2019, with the last day on May 22, 2020, unless make-up days need to be used. Students will once again get two weeks off for both Christmas break and spring break, as well as one week for fall break.
The Knox School Board will consider the 2019-2020 school calendar tonight.


text:
ES Congratulates the New President of Madagascar
SADC Executive Secretary H.E. Dr. Stergomena Lawrence Tax has conveyed her congratulations to President Elect Hery Rajaonarimampianina on his election as the First President of the Fourth Republic of Madagascar. Dr. Tax conveyed her best wishes to Mr. Rajaonarimampianina following the announcement of the final election results by the Special Electoral Court of Madagascar on 17th January 2014.
The Executive Secretary also wishes to commend the loosing candidates for demonstrating statesmanship in accepting the outcome of the elections and respecting the rule of law. She underscores the need for, "All political parties in Madagascar to be engaged and urged to demonstrate their commitment to ending the political instability in the country by putting the supreme interests of the nation and the people of Madagascar before personal and party-political interests".
While recognising the need to consolidate the political achievements made in the last few years, culminating in the election of Mr. Rajaonarimampianina to the Presidency, she called upon the people of Madagascar, from all walks of life, to remain calm and exercise political tolerance for the good of the nation.
Dr. Tax also congratulates the people of Madagascar for their peaceful conduct and maturity during the elections process and urges them to exhibit the same spirit of tolerance as the country embarks on a political and socio-economic recovery phase.


text:
Send Flowers for Lorraine
Plant a Tree for Lorraine
Lorraine C Griffin
Lorraine Griffin born to Mr. and Mrs. Clarence Harman was born on June 12, 1934, in Philadelphia Pennsylvania, passed this life on Wednesday, January 11, 2023, at the Kent General Hospital.
Lorraine was one of three children, completing her early education in the Philadelphia school system.
She met and married the Reverend Samuel Griffin of Philadelphia in 1954, three children were born of this union, Sandra, Michael, and Valarie, all preceding her in death.
Before moving to Delaware, Lorraine attended Philippian Baptist in Philadelphia and First Baptist in Darby, Pennsylvania.
Relocating to Delaware, Lorraine became a member of the New Jerusalem Baptist Church, in Dover, Delaware, where the Rev. C.V. Holmes is pastor.
At the Jerusalem Church, she faithfully served on the mother's board until her sudden death.
She leaves to mourn their loss, her loving husband, the Reverend Samuel Griffin, two grandchildren, Christopher, and Samuel, one brother, Clarence Harman and a host of other relatives, church family and friends. Preceding her in death, one Grandchild, Anwan.
Funeral Service Thursday, January 19, 2023, 11 am at New Jerusalem Baptist Church, Dover, where friends may view beginning at 10 am. Interment private at a later date at Delaware Memorial Veterans Cemetery, Bear, DE.
To send flowers to the family or plant a tree in memory of Lorraine C Griffin, please visit our floral store.
New Jerusalem Baptist Church
25 Jerusalem Way


text:
Manning Should Never Have Been in the US Military's Crosshairs
Chelsea Manning should have her crushing 35-year sentence commuted by President Obama to the three-and-a-quarter years she's already spent behind bars awaiting trial and sentence... What purpose is there in further punishing a woman who has, when all's said and done, helped publicise deeply troubling incidents.
Neil Durkin
Amnesty International UK press officer
22/08/2013 01:16pm BST | Updated October 22, 2013
Chelsea Manning should have her crushing 35-year sentence commuted by President Obama to the three-and-a-quarter years she's already spent behind bars awaiting trial and sentence (there's a White House petition to that effect here). What purpose is there in further punishing a woman who has, when all's said and done, helped publicise deeply troubling incidents like US dual-Apache* helicopter attack in Baghdad in 2007.
Readers will recall that this involved US Apaches opening fire on a group of men - some armed but some not, and including the two Reuters journalists Saeed Chmagh and Namir Noor-Eldeen - before then separately, and apparently with no justification, shooting at a mini-van that came to rescue one of the wounded men. The cockpit chatter is often obnoxious: "Oh, yeah, look at those dead bastards." "Nice." "Nice." "Good shoot'n'." "Thank you." "Come on, let us shoot." "Oh yeah, look at that. Right through the windshield." "Ha ha." "I think they just drove over a body." "Really!" "Yeah!"
As the Guardian notes, Manning's three-and-a-half-decades jail-term is unprecedentedly long for someone convicted of leaking US government documents. Compare, for example, the ten years received by Charles Graner, the most severely punished of those held responsible for the Abu Ghraib torture in Iraq. And compared to Graner, who served six and half of his ten years, many of those at Abu Ghraib got very light sentences, with the commanding officer at the jail receiving no more than a demotion.
You might almost think that the US military authorities have got their priorities wrong somewhere here ...
Abu Ghraib is also worth recalling because it was through revelations on the CBS 60 Minutes programme and in a New Yorker magazine article that the torture scandal came to public prominence. And it's worth noting too, that the author of the New Yorker article was Seymour Hersh, the veteran investigative journalist who exposed the US army's murder of hundreds of Vietnamese civilians in 1969 - the infamous My Lai massacre.
Journalists may sometimes "embed" with their country's armed forces, but they can also expose wrongdoing as well. Unsurprisingly, militaries the world over commit war crimes and, more often than not, they escape any punishment. Most of their misdeeds are simply lost in the heat of battle, are deliberately overlooked, covered up, or... just not dealt with even when they do occasionally come to light. But without public awareness it's doubtful there will ever be any redress and whistle-blowing journalism is often the vital ingredient to bring about action.
Manning's leak of military data was driven, she says, by "love for our country and a sense of duty for others", and there was an undeniable interest in the public knowing more about the conduct of the US military in Iraq and in places like Afghanistan. With the Apache helicopter killings, for instance, Reuters had sought release of the cockpit video via Freedom of Information legislation, a route that proved totally unsuccessful. Sometimes leaks are the only way...
It's true that right now the issue of what can be released into the public domain - or at least to journalists before being made more widely available - has never seemed more vexed. WikiLeaks, Manning, Snowden, Greenwald/Miranda, the Guardian's smashed hard-drives - the situations are all somewhat different and each throwing up some complex legal issues (see Adam Wagner's account of the Miranda affair for example), but the basic truth is that the military-intelligence-political complex (if I can use this term) is never going to accept unauthorised disclosures. They'll always be anathema. That doesn't mean it's always right to send reporters troves of classified data, but it's important to recognise that this is an important pressure valve in any tightly-wound democracy. In the case of Manning, as the Washington Post's Dana Milbank says, her trial and pre-trial treatment have "exposed how zealous the national security state has been."
Meanwhile, to return to the chilling Apache helicopter attack - leaving aside the Beavis and Butthead-style guffawing of the pilots, the most disturbing part of this sordid episode is the attack on the mini-van, where no weapons are visible and the pilots just appear to be hungry for more "kills". Two young children in the mini-van were badly injured by the 30mm gunship fire and were later carried away by nearby US ground forces (Bravo Company 2-16). One of these soldiers, Ethan McCord, has spoken of carrying first the injured five-year-old girl Doaha Mutashar in his arms and then her ten-year-old brother Sajad. In the process he says he "got yelled at by my platoon leader that I needed to stop trying to save these mf'n kids". After getting them to safety a blood-soaked McCord was badly affected by what he'd seen and confided in his sergeant. He was told to "get the sand out of [his] vagina" and to "suck it up and be a soldier". That's how his heroism was repaid, while Manning's own form of bravery has led to 35 years in a military jail.
*It's just a footnote, but I can't help thinking there's something wrong about a national armed force that uses attack helicopters named after an indigenous Native American people (the Apachean) and pilots with call-signs - "Crazyhorse 1/8" and "Crazyhorse 1/9" - borrowed from a Native American leader (of the Lakota people). Given the 19th-century US government's shameful history of murder, land theft and forced removal of the Native Americans, maybe the modern US military could show a little more respect for other people and other cultures.
War CrimesApache helicopterCrazy HorsewhistleblowersBush administration torture


text:
Conformal Geometry and Dynamics
Published by the American Mathematical Society, the Conformal Geometry and Dynamics (ECGD) is devoted to research articles of the highest quality in all areas of pure and applied mathematics.
The 2020 MCQ for Conformal Geometry and Dynamics is 0.5.
Journals Home eContent Search About ECGD Editorial Board Author and Submission Information Journal Policies Subscription Information
Quasi-metric and metric spaces
by Viktor Schroeder PDF
Conform. Geom. Dyn. 10 (2006), 355-360 Request permission
We give a short review of a construction of Frink to obtain a metric space from a quasi-metric space. By an example we illustrate the limits of the construction.
Mario Bonk and Thomas Foertsch, Asymptotic upper curvature bounds in coarse geometry, Math. Z. 253 (2006), no. 4, 753–785. MR 2221098, DOI 10.1007/s00209-005-0931-5
[BS]BS S. Buyalo and V. Schroeder, Elements of asymptotic geometry, book, to appear. [Fr]Fr A. H. Frink, Distance functions and the metrization problem, Bull. AMS 43 (1937), 133–142.
Retrieve articles in Conformal Geometry and Dynamics of the American Mathematical Society with MSC (2000): 54E35
Retrieve articles in all journals with MSC (2000): 54E35
Viktor Schroeder
Affiliation: Department of Mathematics, University of Zurich, Winterthurerstrasse 190, 8006 Zurich, Switzerland
MR Author ID: 157030
Email: vschroed@math.unizh.ch
Received by editor(s): July 17, 2006
Published electronically: December 26, 2006
Additional Notes: The author was supported in part by SNSF
Journal: Conform. Geom. Dyn. 10 (2006), 355-360
MSC (2000): Primary 54E35
DOI: https://doi.org/10.1090/S1088-4173-06-00155-X


text:
News At Seven-Thirty (, also known as News At 7:30), is the flagship evening English news programme which is broadcast daily Monday to Sunday at 7:30pm in Hong Kong on TVB Pearl. News At Seven-Thirty can also be viewed for free on the TVB News website. The programme first aired on TVB Pearl when it was launched on 19 November 1967 and is one of the longest running newscasts in Hong Kong with News at 6:30 on its sister channel TVB Jade.

Special news
 Early Nightly World News (1 December 1988 to 30 May 1993)
 News Line (31 May 1993 to 8 July 1995)

Notable presenters
Betty Liu
Priscilla Ng (RTHK)
Chris Lincoln (retired)
Chris Gelken  (deceased)
Tony Sabine (ISD)
James Aitken (South China Morning Post)
Jenny Lam (HKBU Journalism lecturer)
Sonya Artero (ISD)

Facts:
The show was seldom presented by only one anchor. But it increasingly seems to be the case that it will be presented by only one female anchor every day after James Aitken  resigned on July 1, 2022.

References

External links
Official website

TVB original programming
1960s Hong Kong television series
1967 Hong Kong television series debuts
Hong Kong television news shows


text:
Q: intval() in php returns empty string? Can anybody explain to me why this (dubious, outdated and otherwise sinful) PHP code occasionally returns a string containing two asterisks characters one after the other? In other words, intval() occasionally returns an empty string.
What value avcost column could have had for that row (avcost is defined as double)?
$rows = mysql_query("SELECT avcost FROM singles" );
if (!$rows) return 5;
$buffer = "";

while ($row = mysql_fetch_row($rows))
{
    $avcost = intval($row[0]); // round it
    $buffer .= $avcost . "*";
}

echo $buffer; // Sometimes it echos something like: 5*0*3*0*34**4*5*

A full answer would include minimal corrections to the above code (without using something like "if ($avcost == "")" :-) that guarantee no double asterisk in the output. Thank you.

A:
A full answer would include minimal corrections to the above code (without using something like "if ($avcost == "")" :-) that guarantee no double asterisk in the output. Thank you.

I will try it :-)
$rows = mysql_query("SELECT `avcost` FROM `singles`");
if (!$rows) return 5;
$buffer = "";

if (mysql_num_rows($rows) == 0) return 5; // Just if you want

while ($row = mysql_fetch_assoc($rows))
{
    $avcost = round($row['avcost']); // round it
    $buffer .= $avcost . "*";
}

echo $buffer; // Sometimes it echos something like: 5*0*3*0*34**4*5*

If it would not work, try this instead and provide me with the output:
$rows = mysql_query("SELECT `avcost` FROM `singles`");
if (!$rows) return 5;
$buffer = "";

if (mysql_num_rows($rows) == 0) return 5; // Just if you want

while ($row = mysql_fetch_assoc($rows))
{
    $avcost = round($row['avcost']); // round it
    die(var_dump($avcost, intval($avcost), doubleval($row['avcost']), $row['avcost'])); // Debug purpose
    $buffer .= $avcost . "*";
}

echo $buffer; // Sometimes it echos something like: 5*0*3*0*34**4*5*


text:
module ControlFlow
  class Step

    class_attribute :_dependents, :_validates, :_is_complete, :_value

    attr_reader :context, :name

    self._validates = Proc.new { true }
    self._is_complete = Proc.new { true }

    class << self

      # Sets the value of step designed with use with urls
      #
      # @param [Mixed] value
      def value(value = nil, &block)
        if(block_given?)
          self._value = block
        else
          self._value = value
        end

        self
      end

      # Sets the steps this step is dependant on
      #
      # @param [Symbols] list of symbols this step is dependant on
      def depends_on(*args, &block)
        if(block_given?)
          self._dependents = block
        else
          self._dependents = args.flatten
        end

        self
      end

      # Sets validation this step uses
      #
      # @param [Proc] logic for block
      def validates(&block)
        self._validates = block

        self
      end

      # Sets validation this step uses to verify
      # that this step is completed
      #
      # @param [Proc] logic for block
      def is_complete(&block)
        self._is_complete = block

        self
      end

    end

    # Initializes step with context
    def initialize(name, context)
      @name = name
      @context = context
    end

    def context
      @context
    end

    # Returns list of dependencies for step
    #
    # @returns [Array] list of symbols
    def dependencies
      if(self._dependents.respond_to?(:call))
        context.instance_eval(&self._dependents)
      else
        self._dependents
      end
    end

    # Returns boolean value based on logic of is_complete
    # block executed within context of the object given in
    # the initializer
    #
    # @returns [Boolean]
    def complete?
      context.instance_eval(&self._is_complete)
    end

    # Returns boolean value based on logic of is_complete
    # block executed within context of the object given in
    # the initializer
    #
    # @returns [Boolean]
    def valid?
      context.instance_eval(&self._validates)
    end

    # Returns the value set in the definition
    def value
      if(self._value.respond_to?(:call))
        context.instance_eval(&self._value)
      else
        self._value
      end
    end

  end

end

redpajama_set_name: RedPajamaGithub


The perfect accessory for her outfit, the dainty and sweet White Bitty Bow is made with white grosgrain ribbon and a classic alligator clip. Mix and match with her wardrobe. Size 3 inch.
This bow is simple and beautiful! I prefer small bows for my daughter and this one is perfect and a great price.


Watch for sales when selecting Metal Designs Etagere Bookcase By Artistica Home. Most of the time furnishings are put on purchase. If you require a particular bit, it will save you lots of money by with patience waiting for the price to become lowered. You may even ask your preferred Metal Designs Etagere Bookcase By Artistica Home retail store as soon as the product will likely be designated at a lower price. If you require a new settee, try locating a single with many totally covered pillows. These soft cushions stay longer and can be switched routinely. If at all possible, you should get a furniture with easily-removed handles in order to quickly scrub them. Easily removed covers can even be replaced quickly in the event you are not able to clean a stain Buy Metal Designs Etagere Bookcase By Artistica Home in the future around. Following this year, it really is frequent for shops to get these pieces away their store ground. This can result in some terrific sales and discounts.
Everyone values becoming soaked on your sofa by the time you unwind. This stands out on the comfort and also the nature of the couches are important. No one loves to sit on a menacing and unpleasant couch with frayed furniture. In fact, couches are expensive. If you are searching which are more comfy and comfortable vehicles, in those days you have to pay for them. I've come across regularly that people end up buying the wrong couch and after spending a fortune on it. Why? Essentially, they do not understand how to pick the fantastic Ashley furnishings couch in the best way. Remember that the higher the cost, it usually doesn't give you the Appropriate item. For this case, we've discovered part of the best sofas for a comfy feeling. We advise you understand before you get towards the super wealthy furnishings stores. You'll avoid problems and a bit of "mourn over lot of money-bad luck".
This group of RTA sofas comes in various upholstery smoothness. Some of them incorporate bonded leather, linen, corduroy, linen consistency, polyester. All you need is to choose the right tapestry in importance for the balanced requirements. Obtainable materials offer an simple-to-thoroughly clean component. A characteristic that implies its adaptability to resist drinks and food. The extravagant chair and back again cushions election in support of a reducing-advantage look. The sq . molded equip that starts just over them improves the magnificence. You have the comforts and soft styles that hit your entry.
If you are searching for some serious rest, this loveseats solid pillow back again and rolled hands will deliverbut at a higher price tag. Each chair cushion consists of 30 individual pocketed circles for springtime and assistance, and resilience seat froth for an extra coating of plushness and sturdiness. Plus, the froth cushions are capped with extremely soft, combined down feathers. For your extra comfort, you will find three regular jobs: seated, a slight recline by having an raised foot rest, and a complete recline by having an raised footrest. It does not hurt this reclining loveseat looks lux, possibly. Its all-leather upholstery and ornamental nail head trim give it a classic appear that can work with lots of house decorations designs, from conventional to country to crafts and arts. Plus, leather-based holds up nicely towards daily use, kids and dog hair and nails. Just be sure you condition the leather-based each and every six to 12 months.
You cant discuss this couch with out referring to its remarkable design, sturdiness, and luxury. If you ever required a comfortable seat, then move quick and get yourself Coaster Samuel Selection Cream Leather-based Couch. You'll like it. This 3 seater couch has thoroughly clean lines and great cushions. The cushions are attached to the seat and at the back. It is made from leather-based which is a certain bet that its durable. It also functions tufted back again and seats that certainly contributes to its impressive appear. More to the point, it features a spring base that gives it the necessary comfort and durability. Its wood frame causes it to be very sturdy. The lengthy and the short of it is this fact couch is remarkable in each and every aspect. You might or might not accept this. But the only method you are able to appreciate this is to find and try it.
This lying loveseat takes the second place simply because its a super affordable, extremely comfortable choice that may participate in most house dcor styles. Its wood body is padded with circles (for some springtime) and-density foam (for many gentle), and upholstered with brownish faux leather which makes it an ultra-flexible furniture piece. Add it to the man cave for any cozy spot to watch the sport (and do not worry about any spillsits vinyl fabric upholstery tends to make cleanup simple) or your living room with a couple of decorative throw pillows for that ideal spot to cozy up following a long day. Actual-life customers love this lying loveseat because its comfortable, durable, simple to put together 1 reviewer even mentioned that they could assemble two models in under 45 minutes! and delivery from the merchant is easy.
This sofa is praised for distinctive design and comfort. Its impressive flare-equip sofa with chairs offers you optimum space for stretching out and using your room. So generally the modern sofa chaise increases the great thing about this established. The established also includes pillow top arms padded back again and chairs for maximum comfort. The sofa includes a corner-blocked wood frame that provides the sofa sufficient sturdiness. The couch steps 89 inches broad x 62 in . thorough by 4 inches tall which makes it suitable for moderate size rooms. You may need to do small putting together for example of the legs.
The Bridgewater is a couch style that is primarily casual and certainly comfy. This design may be the beloved of numerous an artist simply because it can be used to produce a informal, friendly room. Bridgewater sofas are flexible, depending on the upholstery you select. Done in a neutral fabric, this kind of couch does not contend with other elements within the room that may be much more dramatic, such as art work or any other big features. More formal material will yield a more grand style of sofa. A number of qualities differentiate Bridgewater couches: Usually they have low arms and a high back again, which plays a role in the sporadic appear. Most also have a customized skirt that conceals the thighs and free soft cushions for that chair and back. This specific style was created to support slipcovers, that also give a casual atmosphere to the couch.
You cannot discuss this sofa with out talking about its impressive design, durability, and luxury. Should you ever needed a comfortable chair, then transfer fast and obtain your self Rollercoaster Samuel Selection Cream Leather-based Sofa. You'll love it. This 3 seater sofa has thoroughly clean outlines and excellent soft cushions. The cushions are affixed to the chair and at the back. It is made of leather-based and that definitely is a certain wager that it is durable. Additionally, it functions tufted back and seats that certainly adds to its remarkable appear. More to the point, it features a springtime base that gives it the necessary comfort and durability. Its wooden frame makes it very durable. The long and also the short of it is this fact couch is remarkable in every aspect. You may or may not accept this. But the only way you can understand why is to find and check out it.
Just like its namesake, the camelback sofa includes a difficulty or possibly two that accents the primary outline of the couch style. This is a conventional design which was prominent within the 1700s by Chippendale and families who wanted aristocratic, official furniture often chosen this design. These days, this couch design lends a far more formal air to the space, particularly when upholstered in a formal material. A more casual fabric choice would make it suitable for a family room that does not need a great deal of formality. In either case, the camelback sofa has some factors that characterize the style. The legs are typically uncovered, the sofa doesn't have back soft cushions also it usually has sq . or folded arms.
The Bridgewater is a couch style that's mainly informal and definitely comfortable. This style may be the darling of many an artist because you can use it to create a informal, friendly space. Bridgewater sofas are versatile, with respect to the upholstery you choose. Completed in an unbiased material, this kind of couch does not compete with additional factors in the room that may be more dramatic, such as artwork or any other big functions. Much more official material will yield a more stately style of sofa. A number of qualities differentiate Bridgewater couches: Usually they have low hands and a higher back, which plays a role in the casual appear. Most also have a tailored skirt that conceals the thighs and free cushions for that seat and back again. This specific design was created to support slipcovers, that also lend a casual atmosphere towards the sofa.
This couch is appreciated for its unique design and luxury. Its impressive flare-arm sofa with seats offers you maximum space for stretching out and using your living space. So generally the contemporary sofa chaise increases the great thing about this set. The set also includes cushion leading arms cushioned back again and chairs for optimum comfort. The couch also includes a large part-obstructed wood frame that gives the couch sufficient toughness. The sofa steps 89 inches broad by 62 inches in depth by 4 inches in height which makes it suitable for medium dimension areas. You may want to do minor assembling eg from the thighs.
Be sure you enhance the appears of the family room with the addition of these superb cup coffee tables. Those are the best cup coffee tables on the market having a durable building and stylish designs. The tables are highly reviewed and recommended. Go correct ahead and select one which best matches your taste with full confidence.


text:
Abstracta Botanica
Abstracta Botanica publishes papers in the field of plant ecology and taxonomy, with special emphasis on theoretical and analytical aspects. The editors hope that the journal is going to serve the needs of an increasing audience and will receive continuous support from researchers all around the world.
Acta Phytogeographica Suecica
Official organ of the Swedish Phytogeographical Society.
The journal Agricultural Chemistry (Agrokhimiya) was founded in 1964. It publishes the results of theoretical and experimental studies and reviews on the current problems of soil chemistry and fertility, plant nutrition, application of fertilizers, plant protection and plant growth regulators, ecology, and ecotoxicology.
American journal of Botany
The AMERICAN JOURNAL OF BOTANY is an internationally recognized journal accepting refereed research papers on all aspects of plant biology, published monthly since 1914. In addition to reports of original research in all areas of plant science, the Journal contains Rapid Communications, and Special Papers, which include reviews, critiques and analyses of controversial subjects.
Annals of Botany
Annals of Botany is a major international journal distributed monthly to 76 countries. Submissions of papers covering observational, experimental, or theoretical aspects of pure and applied plant science are welcome at our Editorial Offices in the United Kingdom, Canada, Australia or Japan. The Journal covers all the major areas of plant science and publishes full length research papers, Short Communications, Review Articles and Book Reviews.
Applied Vegetation Science
The journal covers all current aspects of applied vegetation science, including phytosociology, vegetation theory, classification and ordination, pattern and process, structure and function, population ecology, ecophysiology, palaeoecology, plant geography and landscape ecology.
Aquatic Botany
The journal is concerned with fundamental studies on structure, function, dynamics and classification of plant-dominated aquatic ecosystems. It is also intended as an outlet for papers dealing with applied research on aquatic plants, including reports on the consequences of disturbance of aquatic ecosystems, the use of aquatic plants, conservation of resources and all aspects of plant production and decomposition.
Australian Journal of Botany
Work on all plant groups, including fossil plants, is published. The journal publishes in the areas of: ecology and ecophysiology; conservation biology and biodiversity; forest biology and management; cell biology and tissue culture; paleobotany; reproductive biology and genetics; mycology and pathology; and structure and development.
Botanica Marina
Botanica Marina covers the entire field of marine botany including marine microbiology and marine mycology. Its purpose is to disseminate original knowledge, to provide synopses of global or interdisciplinary interest, and to stress aspects of utilization.
Botanical Electronic News (BEN)
Home page of Botanical Electronic News.


who for over 25 years have turned innovative ideas into a successful online marketing platforms.
A new web site will replace this page shortly.
in the international luxury hotel and hospitality sectors. Our focus is on 5 star hotels, golf and spa resorts.


Zen Master, poet, peace and human rights activist, Thich Nhat Hanh was born in central Vietnam in 1926 and joined the monkhood at the age of 16. In Saigon in the early 1960's, he founded the School of Youth for Social Services (SYSS), a grass roots relief organization that rebuilt bombed villages, set up schools and medical centers, resettled homeless families, and organized agricultural cooperatives. Rallying some 10,000 student volunteers, the SYSS based its work on the Buddhist principles of non-violence and compassionate action. Despite government denunciation of his activity, Nhat Hanh also founded a Buddhist University, a publishing house, and an influential peace activist magazine in Vietnam.
Exiled from Vietnam, he traveled to the U.S. where he made the case for peace to federal and Pentagon officials including Robert McNamara. He may have changed the course of U.S. history when he persuaded Martin Luther King, Jr. to oppose the Vietnam War publicly, and so helped galvanize the peace movement. The following year, King nominated him for the Nobel Peace Prize. Subsequently Nhat Hanh led the Buddhist delegation to the Paris Peace Talks.
Often referred to as the most beloved Buddhist teacher in the West, Thich Nhat Hanh's teachings and practices appeal to people from various religious, spiritual, and political backgrounds. Nhat Hanh offers a practice of "mindfulness" that is beneficial for people of all faiths, by helping us resist and transform the speed and violence of our modern society. His life and teachings have deeply influenced millions of people, including scores of luminaries in different fields: politician Jerry Brown, civil rights champion Martin Luther King, Jr., eco-activist Joanna Macy, and Catholic mystic Thomas Merton – to name a few.


text:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<title>ColumnCounter.GroupByPrefix (apache-cassandra API)</title>
<meta name="date" content="2015-05-13">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">

JavaScript is disabled on your browser.

Overview

Package

Class

Use

Tree

Deprecated

Index

Help

Prev Class

Next Class

Frames

No Frames

All Classes

Summary:

Nested |

Field |

Constr |

Method

Detail:

Field |

Constr |

Method

org.apache.cassandra.db.filter

Class ColumnCounter.GroupByPrefix

java.lang.Object

org.apache.cassandra.db.filter.ColumnCounter

org.apache.cassandra.db.filter.ColumnCounter.GroupByPrefix

Enclosing class:

ColumnCounter

public static class ColumnCounter.GroupByPrefix
extends ColumnCounter

Nested Class Summary

Nested classes/interfaces inherited from class org.apache.cassandra.db.filter.ColumnCounter

ColumnCounter.GroupByPrefix

Field Summary

Fields inherited from class org.apache.cassandra.db.filter.ColumnCounter

live, timestamp, tombstones

Constructor Summary

Constructors

Constructor and Description

ColumnCounter.GroupByPrefix(long timestamp,
                           CompositeType type,
                           int toGroup)

A column counter that count only 1 for all the columns sharing a
 given prefix of the key.

Method Summary

Methods

Modifier and Type
Method and Description

void
count(Column column,
     DeletionInfo.InOrderTester tester)

Methods inherited from class org.apache.cassandra.db.filter.ColumnCounter

countAll, live, tombstones

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

ColumnCounter.GroupByPrefix

public ColumnCounter.GroupByPrefix(long timestamp,
                           CompositeType type,
                           int toGroup)

A column counter that count only 1 for all the columns sharing a
 given prefix of the key.

Parameters:

type - the type of the column name. This can be null if toGroup is 0, otherwise it should be a composite.

toGroup - the number of composite components on which to group
                column. If 0, all columns are grouped, otherwise we group
                those for which the toGroup first component are equals.

Method Detail

count

public void count(Column column,
         DeletionInfo.InOrderTester tester)

Overrides:

count in class ColumnCounter

Overview

Package

Class

Use

Tree

Deprecated

Index

Help

Prev Class

Next Class

Frames

No Frames

All Classes

Summary:

Nested |

Field |

Constr |

Method

Detail:

Field |

Constr |

Method

Copyright © 2015 The Apache Software Foundation


text:
I'm not sure I'm done coaching, but I a break.He enjoys that challenge and his game speaks for itself.It'd be a major upset if it goes just about any other way.Any commercial use or distribution without the express written consent of AP is strictly prohibited.This claim crumbles as if Thanos snapped it out of existence when one recalls that Dorion said he was considering trade options for Karlsson as early as January.
If you're looking for overall run production, hone in on the run index.For those who are curious anyway, Carroll said tight end Ed Dickson would be the team's emergency long snapper should the need for that ever arise.Cobbs was originally signed as an undrafted free agent by the Redskins in April and found a spot on their practice squad in September.
Here are five reasons why the Sharks clinched a playoff berth: 1.This experience is truly something that I will cherish for the rest of my life.It was part of his routine.He's played all 82 games in each of his first three seasons and has produced at a level worthy of a first overall pick.
Judges expressed disappointment in the ride quality.25 NHL Trade Deadline, we're taking a second look at the Top 10 options potentially available in this year's marketplace.We don't give the other team much, and because of that we get chances, and we've got guys that can score.
won't be so momentous if the offensive line isn't strengthened.The 23-year-old Nurse led Edmonton blue liners in 2017 with six goals and 20 assists in 82 games.Moncrief is still only 25 years old and has good size and opportunity in this high-scoring, high-volume Steelers offense.Kerr Johnson, Jr.So that's the concern.
We coached together in Dallas for three years.Compton has not played a defensive snap since Week 5, so if he were to miss any time, Tennessee's defense would likely remain unaffected.
As a WHL rookie in 2009, he won the Daryl K.
He has otherwise to eclipse five scores or post a fantasy finish better than 45th.The University of Miami has been a part of my life for more than three decades.With Seth Jones' nascent NHL career looking pretty good so far-debuting in 2013 and scoring his first goal within a selection to the NHL All-Star Game-it would seem that Popeye's fatherly advice paid off.
29 — the final game of the season — the Yankees are going to bid adieu to Globe Life Park in Arlington with two home runs in the stadium's final game.
Fans and pundits-including many at ESPN-did not hold back their criticism.Pittsburgh has taken rare action in the wake of the deaths of 11 Jewish congregants in Squirrel Hill.If you would like to search for all players born on a certain day, for example all players born on December 25th in any year, choose the month and day with the drop down boxes and then choose the 'Month and Day Search' option.If you would like to search for all players born on a certain day, for example all players born on December 25th in any year, choose the month and day with the drop down boxes and then choose the 'Month and Day Search' option.
Potvin's No.This number only figures to rise, as older players with no NBAGL experience retire and as teams continue to increase the use of their affiliate clubs.We acknowledge that part of it, but we also have to acknowledge that we have to be focused on what we've been doing and get better at some things so that we can be able to perform on Sunday.In , guess who was going next?
A somewhat heralded free-agent addition this past offseason, Curry wasn't a starter by season's end, ceding the defensive end spot opposite Jason Pierre-Paul to Carl Nassib .I've got to help my guys out.If they were a typical rebuilding team, general manager Jim Nill could be more inclined to keep those picks.He's been limited to a target share of 13 percent each of the past two seasons despite running a route on at least 82 percent of the team's pass plays both campaigns.
Day Search' 'Month my blown calls


The deal place to built own house for peacefull living in pure enviroment. The land has got a very big potential for tourist business development.A holiday houses complex or spa would be a good business there. A lot of forests and clean lakes in close area plus beautiful landscapes make this place price worthy. More photos available on request.
It's not clear why your message could not been delivered but you can try sending it directly by mail or feel free to give us a call.


Mixed Native Hawthorn Based Bare Roots – 120-150cm 4.5 out of 5 based on 22 ratings.
Hawthorn Based 120/150cm Bare Roots – Discounted Pack of 250 – Hawthorn (Crataegus monogyna) is a popular native deciduous hedging plant also known as Quickthorn, May Blossom, May Thorn or May Flower. It has an abundant display of white scented blossom soon after the first buds appear, developing glossy red haws in autumn.
Blackthorn Based 120/150cm Bare Roots – Discounted Pack of 250 – Our Blackthorn Based MIxed Native Packs are predominantly Blackthorn which is ideal for heavy soils or coastal/exposed conditions. This mixed native pack is also ideal for animal grazing areas as it does not contain any plants that are poisonous to livestock.
Top 14 viral videos of 2011: Royal weddings, zombies and muppets top list – Axis Animation, based in Glasgow, United Kingdom.
upcoming movie 3 has become one of the internet viral sensations of the year. The Tanglish song (a mix of Tamil and English) with nonsensical lyric.


text:
'''
Based on:
https://trac.openstreetmap.org/browser/applications/rendering/mapnik/generate_tiles_multiprocess.py
With snippet from:
http://www.klokan.cz/projects/gdal2tiles/gdal2tiles.py

The MIT License (MIT)

Copyright (c) 2015 Jon Sellars

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
'''

from math import pi,cos,sin,log,exp,atan
from subprocess import call
import sys, os
import multiprocessing
import sys,getopt
from osgeo import gdal
try:
    import mapnik2 as mapnik
except:
    import mapnik

USAGE = '''
Usage: mapniktiler.py
    --image-in srcfile           Input image -Required
    --tile-dir /path/to/dir      Output directory -Optional
    --p value                    Number of threads (2) -Optional
    --z-min value                Min Zoom (0) -Optional
    --z-max value                Max Zoom (Based on GSD) -Optional
    --bbox 'xmin ymin xmax ymax' Calculated from extent -Optional

bbox needs quotes!!
The only required argument is --image-in
eg:  --image-in src.tif  --p 4 --z-min 0 --z-max 6 --bbox '-170 15 -52.0 74.0'
'''

try :
    args,byaa = getopt.getopt(sys.argv[1:], '', ['image-in=','tile-dir=','z-min=','z-max=','bbox=','p=',])
    #print byaa
    #print args
    args = dict(args)

    imageIn = args.get('--image-in')
    tile_dir = args.get('--tile-dir')
    zMin = args.get('--z-min')
    zMax = args.get('--z-max')
    p = args.get('--p')
    b_box = args.get('--bbox')

except:
    print USAGE
    #sys.exit()

'''
Start def's
'''

def calcImgExt(img):
    dataset = gdal.Open(img)
    # get epsg code
    try:
        epsg = dataset.GetProjectionRef().split(',')[-1].split('"')[1]
    except:
        epsg = 0
        print dataset.GetDescription(),'has no projection'
    geot = dataset.GetGeoTransform()
    # Get image height width and heigth in pixels
    rastX = dataset.RasterXSize
    rastY = dataset.RasterYSize
    # Get pixel sizes
    pixelX = geot[1]
    pixelY = geot[5]
    # Get ULX,ULY
    ULX = geot[0] + pixelX/2
    ULY = geot[3] + pixelY/2
    # Calculate LRX,LRY
    LRX = ULX+(pixelX * rastX)
    LRY = ULY+(pixelY * rastY)
    dataset = None

    imgBounds = ULX,ULY,LRX,LRY
    #print imgBounds
    return imgBounds

def calcImgRes(img):
    dataset = gdal.Open(img)
    geot = dataset.GetGeoTransform()
    # Get pixel size x and assume y is the same
    pixelX = geot[1]

    # release dataset
    dataset = None

    return pixelX

def jsonTemplate():
    jt = '''{
    "description": "",
    "bounds": "%s,%s,%s,%s",
    "minzoom": "%s",
    "version": "1.0.0",
    "template": "",
    "maxzoom": "%s",
    "name": "%s"
}'''
    return jt

def xmlTemplate():
    mapTemp = '''<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over" background-color="transparent" maximum-extent="-20037508.34,-20037508.34,20037508.34,20037508.34" >

<Layer name="bluemarble"
  srs="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs">

    <Datasource>
       <Parameter name="file"><![CDATA[%s]]></Parameter>
       <Parameter name="type"><![CDATA[gdal]]></Parameter>
    </Datasource>
  </Layer>

</Map>'''
    return mapTemp

def testMap():
    theTest = '''<!DOCTYPE html>

<title>TestMap</title>

<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.css" />

'''
    return theTest ##expects lat,lon,zoom,minZoom ,maxzoom

## Start klokkan snippet ##
initialResolution = 156543.033928041

def Resolution(zoom):
    "Resolution (meters/pixel) for given zoom level (measured at Equator)"
    return initialResolution / (2**zoom)

def ZoomForPixelSize(pixelSize):
    "Maximal scaledown zoom of the pyramid closest to the pixelSize."
    for i in range(30):
      if pixelSize > Resolution(i):
        return i-1 if i!=0 else 0 # We don't want to scale up
## End klokkan snippet ##

'''
end 'o defs
'''
# handle missing zooms
# only works on decimal degree projections....
if zMin:
    zMin = int(zMin)
else:
    zMin = 0
if zMax:
    zMax = int(zMax)
else:
    dd = calcImgRes(imageIn)
    m = dd*100000
    zMax = ZoomForPixelSize(m)

if b_box:

    xMin = b_box.split()[0]
    yMin = b_box.split()[1]
    xMax = b_box.split()[2]
    yMax = b_box.split()[3]

else:
    xMin,yMax,xMax,yMin = calcImgExt(imageIn)

bbox = (float(xMin),float(yMin), float(xMax), float(yMax))
#bbox = (-180,-90,180,90)
print bbox

#zMin = 0
#zMax = 6

### Done gathering cli arguments

imgPath = os.path.abspath(imageIn)
basename = os.path.basename(imageIn).replace('.','_')
## these need a way to get all extensions!!!!!!!!!
fName,theExt = os.path.splitext(imgPath)
xmlPath = imgPath.replace(theExt,'.xml')
if tile_dir == None:
    tile_dir = imgPath.replace(theExt,'')

# open mapnik xml
xOut = open(xmlPath,'w')

xmlText = xmlTemplate()%imgPath
xOut.write(xmlText)
xOut.close()
theMapFile = xmlPath

## Begin what was mostly
DEG_TO_RAD = pi/180
RAD_TO_DEG = 180/pi

# Default number of rendering threads to spawn, should be roughly equal to number of CPU cores available
NUM_THREADS = 2
if p:
    NUM_THREADS = int(p)

def minmax (a,b,c):
    a = max(a,b)
    a = min(a,c)
    return a

class GoogleProjection:
    def __init__(self,levels=18):
        self.Bc = []
        self.Cc = []
        self.zc = []
        self.Ac = []
        c = 256
        for d in range(0,levels):
            e = c/2;
            self.Bc.append(c/360.0)
            self.Cc.append(c/(2 * pi))
            self.zc.append((e,e))
            self.Ac.append(c)
            c *= 2

    def fromLLtoPixel(self,ll,zoom):
         d = self.zc[zoom]
         e = round(d[0] + ll[0] * self.Bc[zoom])
         f = minmax(sin(DEG_TO_RAD * ll[1]),-0.9999,0.9999)
         g = round(d[1] + 0.5*log((1+f)/(1-f))*-self.Cc[zoom])
         return (e,g)

    def fromPixelToLL(self,px,zoom):
         e = self.zc[zoom]
         f = (px[0] - e[0])/self.Bc[zoom]
         g = (px[1] - e[1])/-self.Cc[zoom]
         h = RAD_TO_DEG * ( 2 * atan(exp(g)) - 0.5 * pi)
         return (f,h)

class RenderThread:
    def __init__(self, tile_dir, mapfile, q, printLock, maxZoom):
        self.tile_dir = tile_dir
        self.q = q
        self.mapfile = mapfile
        self.maxZoom = maxZoom
        self.printLock = printLock

    def render_tile(self, tile_uri, x, y, z):
        # Calculate pixel positions of bottom-left & top-right
        p0 = (x * 256, (y + 1) * 256)
        p1 = ((x + 1) * 256, y * 256)

        # Convert to LatLong (EPSG:4326)
        l0 = self.tileproj.fromPixelToLL(p0, z);
        l1 = self.tileproj.fromPixelToLL(p1, z);

        # Convert to map projection (e.g. mercator co-ords EPSG:900913)
        c0 = self.prj.forward(mapnik.Coord(l0[0],l0[1]))
        c1 = self.prj.forward(mapnik.Coord(l1[0],l1[1]))

        # Bounding box for the tile
        if hasattr(mapnik,'mapnik_version') and mapnik.mapnik_version() >= 800:
            bbox = mapnik.Box2d(c0.x,c0.y, c1.x,c1.y)
        else:
            bbox = mapnik.Envelope(c0.x,c0.y, c1.x,c1.y)
        render_size = 256
        self.m.resize(render_size, render_size)
        self.m.zoom_to_box(bbox)
        if(self.m.buffer_size < 128):
            self.m.buffer_size = 128

        # Render image with default Agg renderer
        im = mapnik.Image(render_size, render_size)
        mapnik.render(self.m, im)
        im.save(tile_uri, 'png256')

    def loop(self):

        self.m = mapnik.Map(256, 256)
        # Load style XML
        mapnik.load_map(self.m, self.mapfile, True)
        # Obtain <Map> projection
        self.prj = mapnik.Projection(self.m.srs)
        # Projects between tile pixel co-ordinates and LatLong (EPSG:4326)
        self.tileproj = GoogleProjection(self.maxZoom+1)

        while True:
            #Fetch a tile from the queue and render it
            r = self.q.get()
            if (r == None):
                self.q.task_done()
                break
            else:
                (name, tile_uri, x, y, z) = r

            exists= ""
            if os.path.isfile(tile_uri):
                exists= "exists"
            else:
                self.render_tile(tile_uri, x, y, z)
            bytes=os.stat(tile_uri)[6]
            empty= ''
            if bytes == 103:
                empty = " Empty Tile "
            self.printLock.acquire()
            #print name, ":", z, x, y, exists, empty
            self.printLock.release()
            self.q.task_done()

def render_tiles(bbox, mapfile, tile_dir, minZoom=1,maxZoom=18, name="unknown", num_threads=NUM_THREADS):
    print "render_tiles(",bbox, mapfile, tile_dir, minZoom,maxZoom, name,")"

    # Launch rendering threads
    queue = multiprocessing.JoinableQueue(32)
    printLock = multiprocessing.Lock()
    renderers = {}
    for i in range(num_threads):
        renderer = RenderThread(tile_dir, mapfile, queue, printLock, maxZoom)
        render_thread = multiprocessing.Process(target=renderer.loop)
        render_thread.start()
        #print "Started render thread %s" % render_thread.getName()
        renderers[i] = render_thread

    if not os.path.isdir(tile_dir):
         os.mkdir(tile_dir)

    gprj = GoogleProjection(maxZoom+1)

    ll0 = (bbox[0],bbox[3])
    ll1 = (bbox[2],bbox[1])

    for z in range(minZoom,maxZoom + 1):
        px0 = gprj.fromLLtoPixel(ll0,z)
        px1 = gprj.fromLLtoPixel(ll1,z)

        # check if we have directories in place
        zoom = "%s" % z
        if not os.path.isdir(tile_dir + zoom):
            os.mkdir(tile_dir + zoom)
        for x in range(int(px0[0]/256.0),int(px1[0]/256.0)+1):
            # Validate x co-ordinate
            if (x < 0) or (x >= 2**z):
                continue
            # check if we have directories in place
            str_x = "%s" % x
            if not os.path.isdir(tile_dir + zoom + '/' + str_x):
                os.mkdir(tile_dir + zoom + '/' + str_x)
            for y in range(int(px0[1]/256.0),int(px1[1]/256.0)+1):
                # Validate x co-ordinate
                if (y < 0) or (y >= 2**z):
                    continue
                str_y = "%s" % y
                tile_uri = tile_dir + zoom + '/' + str_x + '/' + str_y + '.png'
                # Submit tile to be rendered into the queue
                t = (name, tile_uri, x, y, z)
                queue.put(t)

    # Signal render threads to exit by sending empty request to queue
    for i in range(num_threads):
        queue.put(None)
    # wait for pending rendering jobs to complete
    queue.join()
    for i in range(num_threads):
        renderers[i].join()

if __name__ == "__main__":

    home = os.environ['HOME']
    try:
        mapfile = os.environ['MAPNIK_MAP_FILE']
    except KeyError:
        mapfile = theMapFile
    try:
        tile_dir = os.environ['MAPNIK_TILE_DIR']
    except KeyError:
        tile_dir = tile_dir

    if not tile_dir.endswith('/'):
        tile_dir = tile_dir + '/'

    #-------------------------------------------------------------------------
    #
    # Change the following for different bounding boxes and zoom levels
    #
    # Start with an overview
    # World

    # Europe+
    #bbox = (-170, 15, -52.0, 74.0)
    render_tiles(bbox, mapfile, tile_dir, zMin, zMax , basename)
metaTxt = jsonTemplate()%(xMin,yMin,xMax, yMax,zMin,zMax,basename)
metaPath = tile_dir+'/metadata.json'
m = open(metaPath,'w')
m.write(metaTxt)
m.close()

testPath = tile_dir+'/leaflet.html'
testTxt = testMap()% ( ((yMin+yMax)/2),((xMin+xMax)/2),((zMin+zMax)/2),zMin ,zMax)
t = open(testPath,'w')
t.write(testTxt)
t.close()


This qualification is for learners who want to study Business through applied learning to progress to Higher Education. Progression could be onto a Business degree, for example Business Management or a non-related degree programme. It also prepares learners to take up employment in business where they could continue to study, either directly after achieving the qualification or after Higher Education.
Every unit achieved will be graded as pass, merit or distinction. Qualifications are graded using a Pass, Merit, Distinction and Distinction* structure.
Does the qualification carry UCAS points?
Learners undertake structured work-experience or work placements that develop skills and knowledge relevant to the qualification.
Learners undertake project(s), exercise(s), and/or assessment set with input from industry practitioners.
Learners take one or more units delivered or co-delivered by an industry practitioner. This could take the form or master classes or guest lectures.
Industry practitioners operate as 'expert witnesses' that contribute to the assessment of a learner's work or practice, operating within a specified assessment framework.