text:
Discipline: Focus and Follow-Through
You are here: Home1 / Culture & Engagement2 / Discipline: Focus and Follow-Through
March 20, 2019 /0 Comments/in Culture & Engagement, Trust & Accountability /by TakingPoint Leadership Team
What you want to do and what you actually do are two very different things. The intent of change is not the same as change. This concept is not one that many companies understand fully and as a result, many companies fail. Without follow through, it's easy to waste a lot of time, money, and resources on the idea of making a difference.
If you have experienced the same and wonder what's lacking in your organization, it's discipline. Consider scenarios in your current role. Is your day filled with putting out fires? Do you follow after action reports or are you in a hurry to get to the next project? Do your teams collaborate and march toward common company goals or is everyone running by their own agendas doing what they think is best?
Sometimes in the chaos of company operations, it's difficult to take a moment to really reflect on what the current state of your company is. Taking this time, whether it's an hour, a day, or multiple days, will make a huge difference for your company. It will pave the way for its future success or conversely, its future demise. Get focused.
Focus Starts with Discipline
Discipline often gets a bad rap because of its connotation with punishment. Discipline is not a barrier; it's what keeps progress on track. Think about the discipline of athletes as an example. If they didn't practice plays with their team and focus their efforts on areas where they need improvement, they never set themselves up for a win. It's the same with the leaders of a company. If you don't acknowledge and actively work together on the areas that require help, it's detrimental to everyone involved.
Discipline begins with making good habits. In companies, you'll often see what's considered the "small stuff" escalate into bigger problems. People who miss deadlines, show up late to work, or are constantly in negative moods all seem like smaller priorities in the moment. However, these behaviors are what slowly chip away at a company culture and break it down. Without disciplined behavior that aligns with the vision, change can't happen and goals won't be met.
Think about the people you want leading your team. Is it those who are disciplined to the agreed upon goals or those who take it upon themselves to do what they think is right? Rebuilding a team requires far different effort than recruiting the best to begin with. Where do you want to put in the work?
Follow-Through or Forget About It
Once you have disciplined, focused players in place, the follow-through is inevitable. There are three types of organizational discipline: self-discipline, task discipline, and group discipline. Identify which area your team could use the most improvement. You may have a team in place who agrees upon the goals, but does that same team understand what it takes to achieve them? You must have a team who is capable of follow-through.
These types of discipline are fundamentally important to any organization, specifically to provide a sense of security, help with performance, increase productivity and employee engagement, and promote good behavior reflective of the culture you want. Improving discipline comes down to two simple categories: rewards for behaviors that align with the company vision and goals and removal of individuals who lack discipline. Change is a verb. It is not present when there is no focus or follow-through. It is not achievable without discipline.
Change Fatigue: Managing Fear & Staying Energized 3 Ways Technology Improves Employee Engagement


but it has nothing to do with your value as a person.
Based on these two things, what's your value?
Ask yourself, "Who owns me?" and "What was paid for me?" The Bible says, "You have been bought and paid for by Christ, so you belong to him"
with his life. The cross proves your value.
than God paid for you! You're acceptable, and you're valuable.
to Christ, you become a building block in God's great plan.
in God's eyes change the way you treat yourself and other believers?
confuse your valuables with your value as a person.


Credex Systems is invading TEXAS!
Our team has worked hard on this accomplishment so the lenders in the great state of Texas will have access to the best loan management software in the industry.
I want to personally thank everyone on the team that helped secure this approval and invite all the installment lenders in Texas to check out your next loan system.


Never let the rain ruin your plans for the day. As long as you have the Shelta Cancer Council 3013 Folding Rain Umbrella, you can go outside, rain or shine, safe and dry.
This folding rain umbrella has UPF 50+ rating. That is 98% UV Protection. Hence, you will be safe from the sun's harmful UV rays. Or warm and dry when it's raining cats and dogs outside.
This umbrella weighs only 500 grams thus making it easy to carry around and impossible to forget at home or in the car. You wouldn't even notice its weight on your handbag.
This umbrella is sturdy because it is made of a steel shaft and frame. It also has metal tips and metal ferrules.
On the other hand, the canopy fabric is nylon which is water resistant to keep you dry in the rain and lasts longer. The protective cover also keeps the umbrella safe from damage when not in use.
This umbrella is Cancer Council approved. It is recommended for daily use especially during sunny and rainy days.
Shelta Rain Umbrellas are not designed to withstand wind and are not guaranteed against damage in wind or storms.


Cobalt carbonate precipitate. Sodium carbonate has been added to a test tube containing cobalt chloride. Both solutions were 0.5 M concentration. Cobalt carbonate precipitate has been formed as a result: CoCl2 + Na2CO3 -> CoCO3 + NaCl. This is an example of a double displacement reaction.


Why doesn't your current clinic software have automated reminders for when you should contact clients for reviews, leading to higher rebooking rates? We're not sure either.
Pabau works as an automated appointment scheduling software. Scheduling patient appointments online with ease for your medic clinic, medical healthcare centre or beauty salon.
Very few treatments require just one sitting. More than ever repeat sittings are needed during respective stages of a treatment plan, or perhaps different specialisms and practitioners are required at different stages of treatment?
The key to successful patient recall is a combination of consistency, message, timing and marketing channel. This being reflected in Pabau's automated patient recall feature; send multiple, engaging messages, at regular intervals, across the patient's preferred media channel.
One of the biggest hindrance to running a successful patient recall programme is the time commitment required from staff to implement outreach strategies. With Pabau you're able to choose various inputs, such as timings, message copy and marketing channel - optimising your patient recall strategy in one, easy-to-use software.
Running seasonal promotions and offers on specific treatments, and looking for the best way to manage a marketing strategy to reach your most loyal patients?
Integrating your marketing budget, CRM database and outreach channels into Pabau's all-in-one scheduling software, gives you a holistic view across all elements of your patient recall strategy. Pabau allows you to increase budget efficiency and optimal conversion across any promotional campaigns you chose to run.


text:
Print Subscriber? Activate Now
Daily Chronicle(Opens in new window)
Subscribe to the Daily Chronicle(Opens in new window)
Contact Us(Opens in new window)
Text Alerts(Opens in new window)
Sycamore Schools
NIU Sports
Local Editorials
Photo Store(Opens in new window)
Wheels(Opens in new window)
Real Estate(Opens in new window)
Today's Ads(Opens in new window)
DeKalb County Deals(Opens in new window)
NewsSubscribePrep SportsNIU SportsCoronavirusObituariesOnline NewspaperEvent CalendarStarved Rock Country
Women's basketball: NIU squanders 6-point lead in overtime, falls to Ball State
By Eddie Carifio
January 05, 2022 at 9:39 pm CST
Northern Illinois Huskies guard Chelby Koker goes to the basket against Ball State Cardinals guard Ally Becki during their game Wednesday, Jan. 5, 2022, at Northern Illinois University in DeKalb. (Mark Busch - mbusch@shawmedia.com/Mark Busch - mbusch@shawmedia.co)
DeKALB – The Northern Illinois University women's basketball team went more than 40 minutes without a lead against Ball State on Wednesday but found themselves up six in overtime.
But Sydney Freeman found her 3-point stroke for the Cardinals, Anna Clephane had a putback in the closing seconds, and the Huskies suffered their sixth straight loss, 83-82.
"As a fan, it's a great basketball game to watch," NIU coach Lisa Carlsen said. "But it's a tough one for us to swallow. We fought and fought and fought to get back to even at the end of regulation and got off to a good start in overtime. Then we had a couple possessions late in the game we don't do what we need to do and Ball State does, and unfortunately, they come away with the win."
The Huskies (3-7 overall, 0-2 Mid-American Conference) built their biggest lead of the game when Erin Meinert hit a long jumper to put NIU up 80-74. Chelby Koker hit a layup with 41 seconds left to push the lead to 82-78, but Freeman hit her second 3-pointer of overtime and her fifth of the game to cut the lead to one.
Koker couldn't connect on a layup down on the other end and Marie Kiefer was fouled with 4 seconds remaining. She missed both free throws, but the Huskies couldn't get the rebound. Clephane did, scored her team-best 22nd point on the putback and put the Cardinals up, 83-82, with 1.5 seconds left.
Koker couldn't get a shot for the Huskies as time expired to preserve the Ball State win.
"There was a lot of defensive breakdowns," said Huskie guard Janae Poisson, who scored 17 for the Huskies, second only to Koker's 28. "I think that's just lapses in mental consistency, staying locked in until the very end. I think that's what Ball State did and we didn't. It's tough, but I know we'll be better next time."
NIU trailed by as many as 13 in the game and started the fourth down, 60-51. NIU's Errin Hodges made it 72-71 with a layup with 1:23 left. After a stop on the other end, A'Jah Davis connected on a layup to give the Huskies their first lead, then connected on the free throw to make it 74-72.
Jazmyn Turner tied the game with 16 seconds left, and the Huskies missed a pair of chances as time expired.
"We did some good things, hit some shots," Carlsen said. "But I think there were some breakdowns later in the second half of that overtime that got us in trouble."
Ball State (8-4, 1-1) started the game draining 3s early and often, going 5 of 11 from long range and leading by as much as 25-12 in the first quarter. The Huskies got it back to three points in the second quarter, but the entirety of the third quarter Ball State lead was between seven and 11 points.
Every time NIU would get it to a single bucket in the fourth, Ball State would push the lead back to five or six. At least until Davis' three-point play with 34 seconds left.
Ball State led for 39:14, while the Huskies led for a total of 4:38.
"We talked a little at halftime, eight points is nothing, just keep our energy up," Koker said. "Just play our game. It didn't affect us too much going down. ... We just kept fighting, weathered the storm of their runs and get back into the game."
Freeman finished with 20 points for the Cardinals, and Kiefer had a team-best seven rebounds. Davis finished with 12 points and 12 rebounds for the Huskies, and Hodges scored 12 to go with eight rebounds.
The Huskies continue MAC play Saturday with a trip to Ohio for a noon tipoff.
aria-hidden="true"
Copyright © 2021 Shaw Local News Network

redpajama_set_name: RedPajamaCommonCrawl


Do you admire elegant style? Let your darling English Bulldog enjoy wearing such collars on! Obtain this high quality leather dog collar with decorations from FDT Artisan . This gear is created for those who just is fond of stylish collars. In this remarkable collar, your four-legged friend will have more strict, but attractive look. Your cute dog will get the finest treatment when wearing this gear. Full grain genuine leather is gentle and totally safe.
Brass plated buckle will hold out even the strongest English Bulldog power. Breathtaking embellishments are brass plated and have impressive look. Underline your four-legged friend's individuality, buy this Artisan exquisite full grain genuine leather collar!
Full grain leather was selected to offer extreme comfort and safety while wearing. The material is perfectly oiled that keeps it from cracking. Among the best features of full grain natural leather are good adjustability, tear-resistance and hardness. The layer of leather is rather thick that prevents the tool cracking. It helps you to walk even big and tough dog safely. Rounded and smooth edges of the gear are non-cutting and don't rub the English Bulldog's skin. Besides, natural leather doesn't include any harmful elements being absolutely safe.
What about the studs, they are charming! Catchy studs are placed along the leather strap. These studs are brass plated and, thus shine with stylish glittering. The sophisticated design of this accessory is inimitable and individual. Due to these embellishments, this full grain genuine leather dog collar has a spark. That means your four-legged friend will have his individual and exquisite style .
As for the hardware of this adorned full grain leather gear, it is brass plated. It matches perfectly with the embellishments. This covering provides additional safety for the details as it prevents rust. The set of hardware includes a classic elegant buckle and reliable D-ring for leash attachment. These fittings are easy to use and reliable in service they provide. Add more zest to your English Bulldog's look, purchase this attractive leather accessory!


text:
Karië, Oudgrieks: Καρία, Karia of Καρική, Karikí, of Carië, Latijn: Caria, was in de klassieke oudheid een landstreek in het zuidwesten van Klein-Azië. De belangrijkste stad in Karië was Halicarnassus, het huidige Bodrum, van waaruit het werd geregeerd. In Halicarnassus stond het Mausoleum van Halicarnassus, een van zeven wereldwonderen van de antieke wereld.

Aardrijkskunde
Karië werd in het noorden van Lydië gescheiden door het Messogisgebergte. Ionië, dat door de Grieken was gekoloniseerd, grensde in het noordwesten tegen Karië aan, de Egeïsche Zee lag ten zuiden en westen, Lycië lag zuidoostelijk van Karië en in het oosten werd de streek door Pisidië begrensd. De Meander was de grootste rivier en werd beschouwd als de grens tussen Karië en Ionië. Er stond in het gebied veel bos,  met veel vruchtbare vlakten, die voor de graan-, wijn- en olijfbouw geschikt waren. Het land was bergachtig, waar op de bergweiden schapen werden gehoed.

De hoofdstad van Karië was Halicarnassus. Andere belangrijke steden waren Didyma, Heracleia, Alinda, Alabanda, Aphrodisias, Antiochia ad Maeandrum, Labraunda, Mylasa, Myndos, Cnidus, Kaunos en Kalynda. Milete meer naar het noorden worden soms ook tot Karië gerekend.

Bevolking
De Kariërs waren in tegenstelling tot de inwoners van Ionië, hun noordwestelijke buren, geen Grieken. Hun taal was mogelijk verwant aan die van de Etrusken en het is mogelijk dat de laatsten oorspronkelijk uit Karië stamden. De Kariërs stonden echter onder sterke invloed van hun Griekstalige buren en cultureel kunnen ze als een deel van het oude Griekenland worden beschouwd.

Ze worden in oude teksten getypeerd als goede soldaten, dappere zeelui en piraten. Zeeroverij kwam in die tijd veel voor. De Kariërs waren de eerste stam die handvatten aan hun schilden bevestigden, ze beschilderden en een pluim op hun helm monteerden. Ze waren heersers van de zee, maar hadden, nadat de Doriërs waren vertrokken, een gemakkelijker bestaan in de bergen. Hun belangrijkste producten en handelsartikelen waren wijn, honing, olijfolie en vijgen. Ze gebruikten kruiden en plantenwortels om beter te worden. Hun belangrijkste bezigheden bestonden uit weven, het fokken van geiten en schapen, houthandel, meubelfabricage, glaswerk en scheepsbouw. De ceder- en dennenbossen droegen in belangrijke mate aan dit ambacht bij. In oude teksten wordt melding gemaakt van scheepswerven in Kaunos and Halicarnassus, en wordt beschreven dat hars en mastiek, de grondstoffen voor teer in de scheepsbouw, de belangrijkste exportartikelen waren.

Onder vreemde heerschappij
Het gebied werd door Alexander de Grote in 334 v.Chr. veroverd. Karië maakte onder de Romeinen deel uit van de provincie Asia. Onder Diocletianus (244-311) werd de provincie opgesplitst en kwam er een afzonderlijke provincie Caria.

Anatolische oudheid
Geschiedenis van de Egeïsche Zee-regio
Hellenistische oudheid
Historisch land in Anatolië
Perzische satrapie
Romeinen in Klein-Azië

redpajama_set_name: RedPajamaWikipedia


text:
Q: NodeJS down alert? I am starting on nodeJS and already have a script running with forever. Is there a possible way to get notified (email) when forever/node crashes? Running on Ubuntu 12.04.
Many thanks

A: I would recommend using events of process object to handling notifications about app crashing or when its shut down.
You can read more about this here
process.on('SIGINT', function() {
 //Notification code when application process is killed
});

process.on('uncaughtException', function(err) {
  //Notification code when application gets uncaught Exception
});

A: You can use Node domains http://nodejs.org/api/domain.html to catch exceptions and do something you need.
Email example:
var d = require('domain').create();
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
    service: 'Gmail',
    auth: {
        user: 'gmail.user@gmail.com',
        pass: 'userpass'
    }
});

d.on('error', function(er) {
    var mailOptions = {
        from: 'Fred Foo ✔ <foo@blurdybloop.com>',
        to: 'bar@blurdybloop.com, baz@blurdybloop.com',
        subject: 'Crash',
        text: er,
    };
    transporter.sendMail(mailOptions, function (err) {});

});
d.run(function() {

    // here all dangerous logic

});

redpajama_set_name: RedPajamaStackExchange


Every night of the week, all across America and all around the World, you can find people square dancing.
Come out and see how square dancing has changed over the years.
It's not the same old song and dance routine we all learned in high school gym class!
* Are you looking for something fun to do?
* Need a little bit of fun exercise?
Do you enjoy having a good time with friends?
Would you like an activity the family can enjoy?
* New to the area and want to meet people?
Modern Square Dancing is your answer!!
Check below for information about dances open to everyone - no Square Dance experience necessary!!!
September 7th, 2018: The Thalia Thumpers Open House Dance. 7:30 to 9:30 at Foundry United Methodist Church. 2801 Virginia Beach Blvd., Virginia Beach, VA.
September 8th, 2018, The Riptide's Open House Dance 7:30 to 9:00 PM at Bayside Presbyterian Church, 1400 Ewell Road, Virginia Beach, VA. (corner of Ewell and Independence Blvd.


text:
Q: How to check if an extension is really used in Joomla I want to know if a extension (for example: joomfish) is really used or not used at all before i disable it / uninstall it.
Is there a way to check ?

A: First, in Joomla plugin has a specific meaning, so what you want to know is whether a component, module or plugin is used.
This is a common problem when you inherit sites. A lot of times users install tons of extensions and never use or uninstall them.
The simplest first step with modules and plugins is to see if they are published or not. Also you can look at modules and see if they are assigned to any positions or menu items.
In terms of extensions, if they are a kind of extension that would be used to create content and you look at the manager you can see if any content was ever created. If not it is probably safe to uninstall. IF there is content then you will want to figure out whether you need o preserve it.
The problem with Mike's answer is .. how do you know if you have tried every possible combination of things or possible events with enough certainty to say for sure that something is not running ever. For example you may have a component that you never use as a menu item but then some module is running a query against its data.

A: Well you cannot know that. To be absolutely shure you could write a system plugin which gets triggered on plugin calls and logs the triggering plugin names.


Designed to play a key role in production quality control, the FT series coatings analysers measure a wide range of applications in the metal finishing and electronics markets. The FT110A and FT150 series offer new solutions to measuring large parts with complex geometry and measuring ultra-thin coatings on small features. Both instruments are benchtop EDXRF (energy dispersive X-ray fluorescence) analysers with powerful software and hardware designed to deliver high sample throughput, with quality results achieved by any operator. Hitachi High-Tech Analytical Science now sells and services these products in North America, Europe, Middle East and Africa.
The FT110A includes several features to measure parts that are ordinarily difficult to handle. The large chamber, which can be configured with either a fully enclosed or slotted door, accommodates automotive components and decorative hardware as easily as it handles small fasteners. The auto-focus routine allows for measurements to be taken as far away as 80 mm from the sample surface, ideal for measuring recessed areas or rapidly measuring multiple parts with different heights. The auto-approach function offers one-touch positioning to set the X-ray components at the ideal distance for reproducible results. A wide-view camera presents an image of the whole sample to make it easy to locate the desired measurement location. Simply click the feature in the image and it is automatically aligned for analysis.
The FT150 features high-end components to provide the ultimate analysis of ultra-thin coatings on fine structures. A polycapillary optic focuses the X-ray beam down to a diameter of <20 µm, focusing more intensity on the sample and measuring features smaller than is possible with traditional collimation. A high sensitivity, high resolution Vortex® silicon drift detector (SDD) takes full advantage of the optic to measure nm-scale coatings on microelectronics and semiconductors. A high-precision stage and high definition camera with digital zoom allow for quick positioning of the sample features to improve sample throughput.


text:
LIG Quang Tri is a solar power plant built on the land of Gio Hai and Gio Thanh communes, Gio Linh district, Quang Tri province.

The LIG Quang Tri solar power plant has an installed capacity of 49.5 MW. The annual electricity production produced by the power plant is expected to be 67.63 million kWh. Its construction started in August 2018, and it was completed in June 2019, and inaugurated the same month.

The factory has an operating area of 58.6 hectares.

See also

 List of solar power plants in Vietnam

References

2019 establishments in Vietnam
Solar power in Vietnam


SATEL-TR49 is a small dual band and multimode transceiver. It uses the licensed 410-475 MHz and licence-free 902-928 MHz bands. This is the first product available in SATEL GO product family with revolutionary features: two frequencies in compact design, practical interfaces, and easy integration.
SATEL-TR49 is compatible with SATELLINE product line on 410-475 MHz and Freewave and Intuicom products on 902-928 MHz.
Complies with requirements in the EU, USA, Canada, Australia and New Zealand.


text:
409 items matched your search for "Wharton School of Business"
Section All Business (74) Health (11) Lifestyle (15) Local (13) Motley Fool (10) Neighborhoods (10) News (211) Opinion (15) Past Obituaries (10) Sports (15) Type All Article (402) Slideshow (5) Blog Post (2)
Acoustic guitarist at Richter on Sunday
October 19, 2007 | News-Times
In 1990, he received a bachelor's from the Wharton School of Business.
Titans hire 49ers' Ran Carthon as 14th general manager
January 18, 2023 | TERESA M. WALKER
He took part in the NFL Career Development Symposium at the Wharton School of Business in 2013 while with the Rams and again in 2018 with San Francisco.
Tax consultants bring expertise to Padgett franchises in Connecticut
January 4, 2011 | Sandra Diamond Fox
The business provides tax, payroll, and business advisory services exclusively for small business owners who have fewer than 20 employees. ... We see our clients' bills and get used to their vendors," said ...
For GOP's Obsitnik, Himes not his only opponent
July 7, 2012 | Ken Dixon
He says he is relying on leadership skills he learned in the service and the business experience he acquired after earning an MBA from the University of Pennsylvania's Wharton School of Business, to unseat the ...
Workshops to improve women's leadership skills
July 20, 2011 | Sandra Diamond Fox
"Negotiate," said Arlene Kreinik, of Newtown, who spent eight years as a professor in the management department at Western Connecticut State University's Ancell School of Business. ... She attended Wellesley ...
Wyman swears off unfunded mandates in next administration
November 21, 2010 | Neil Vigdor
Finley said that one analysis done by the Wharton School of Business at the University of Pennsylvania showed that the prevailing-wage mandate can drive up project costs by 30 percent.
'Reform public construction wages to save millions'
February 23, 2007 | News-Times
In some instances they are more than 50 percent higher.A decade ago, a Connecticut Advisory Commission on Intergovernmental Relations concluded prevailing wage rates increase construction costs to towns and ...
Ridgefield executive arrested in stock scheme
October 16, 2009 | Larry Neumeister
Robert Moffat, 53, of Ridgefield, senior vice president and group executive at International Business Machines Corp.'... A separate criminal complaint in the case said Moffat and his friend Danielle Chiesi, 43, ...
Sex, Golf and the Wharton School of Business
February 4, 2001 | Alan T. Saracevic
The famed Wharton School of the University of Pennsylvania is zeroing in on its search for a West Coast home in San Francisco, with a deal expected any day now. ... If their timing is any indication, these ...
Hardest college to get into in every state
January 23, 2023 | Deborah Bloom
Delaware: Delaware State University - Location: Dover, Delaware - #164 hardest college to get into nationwide - Acceptance rate: 39% - Net price: $14,464 - SAT range: 810-1010 A historically black college, ...
Gallery landscape unchanged
"My education, therefore, was not primarily in art," said the 53-year-old McEvoy, "but psychology and business and then, straight business." Bright, with a head for figures, the soft-spoken man earned a ...
Meyer: Support Caseville School Bond Proposal
Reader urges support for Caseville School Bond Proposal Letter to the editor: Strong safe schools = strong communities I am writing this letter in support of our upcoming Caseville School Bond Proposal. My ...
Which colleges did the top 10 women CEOs graduate from?
December 5, 2022 | Lauren Liebhaber
Women are also enrolling full-time at top business schools at a record rate. The nonprofit Forte Foundation found that women comprised at least 45% of enrollment at a record 17 business school MBA programs. ...
Barton joins Anderson Hospital Foundation board
October 6, 2022 | The Intelligencer
Barton holds a masters of business administration with a specialization in finance from University of Illinois-Urbana, a bachelor of science in biology, along with minors in chemistry/psychology from Quincy ...
Six Connecticut residents included in Forbes 400 list of richest Americans
He has an MBA from Harvard Business School and is originally from Long Island, N.Y. ... Cohen has an MBA from the Wharton School of Business and is also the owner of the New York Mets, which he purchased in 2020 ...
Top 50 celebrity sightings and news in and around CT in 2022
December 8, 2022 | Joseph Tucci
Jonathan Law high school football game, drawing plenty of attention from students. - Joseph Tucci and Dan Brechlin Lin-Manuel Miranda receives award at Greenwich International Film Festival The Greenwich ...
Community news: Sandcastle competition coming to Fairfield
Shehan Sunder, a senior at Fairfield Warde High School; Catalina Jimenez, a senior at Notre Dame High School in Fairfield; and Hugh Hutchinson, a senior at Fairfield College Preparatory School received the $8,000 ...
The Bedtime Math book series is a fun, silly way to teach kids math concepts
May 11, 2022 | Sandra Ebejer
In fact, his favorite period at school is library, followed by math. ... Other Bedtime Math Products The Bedtime Math books were written by Laura Overdeck, who holds a B.A. in astrophysics from Princeton ...


text:
Whole New Experiences
McDonald's to Acquire Dynamic Yield, Will Use Decision Technology to Increase Personalization and Improve Customer Experience
Acquisition fast-tracks McDonald's digital transformation
CHICAGO, NEW YORK & TEL AVIV, ISRAEL – Mar. 25, 2019 – McDonald's Corporation (MCD) and Dynamic Yield Ltd. today announced an agreement by which McDonald's will acquire Dynamic Yield, a leader in personalization and decision logic technology. With this acquisition of Dynamic Yield, based in New York and Tel Aviv, McDonald's builds on its significant technology investments for growth.
McDonald's will utilize this decision technology to provide an even more personalized customer experience by varying outdoor digital Drive Thru menu displays to show food based on time of day, weather, current restaurant traffic and trending menu items. The decision technology can also instantly suggest and display additional items to a customer's order based on their current selections.
This will enable McDonald's to be one of the first companies to integrate decision technology into the customer point of sale at a brick and mortar location. McDonald's tested this technology in several U.S. restaurants in 2018. Upon closing of the acquisition, McDonald's will begin to roll this technology out in the Drive Thru at restaurants in the United States in 2019 and then expand the use to other top international markets. McDonald's will also begin work to integrate the technology into all of its digital customer experience touchpoints, such as self-order kiosks and McDonald's Global Mobile App.
Dynamic Yield's ability to meet McDonald's customer needs, coupled with their commitment to grow capabilities around ever-changing consumer trends and evolving marketing technologies, allows for the continued advancement and elevation of the McDonald's customer experience with technology and innovation.
"Technology is a critical element of our Velocity Growth Plan, enhancing the experience for our customers by providing greater convenience on their terms," said Steve Easterbrook, President and Chief Executive Officer, McDonald's Corporation. "With this acquisition, we're expanding both our ability to increase the role technology and data will play in our future and the speed with which we'll be able to implement our vision of creating more personalised experiences for our customers."
Liad Agmon, co-founder and CEO of Dynamic Yield, added: "We started Dynamic Yield seven years ago with the premise that customer-centric brands must make personalization a core activity.  We're thrilled to be joining an iconic global brand such as McDonald's and are excited to innovate in ways that have a real impact on people's daily lives."
McDonald's recent advancements in the tech space – including the development of McDonald's Global Mobile App, Mobile Order and Pay, indoor and outdoor digital menu boards and self-order kiosks – have transformed customer experiences in and around its restaurants, by giving customers more ways to pay and personalize their orders to meet their needs.
Upon closing, McDonald's will become sole owner and will continue to invest in Dynamic Yield's core personalization product and world-class teams. Dynamic Yield will remain a stand-alone company and employees will continue to operate out of offices around the world. Dynamic Yield will also continue to serve their current, and attract future, clients.
About McDonald's
McDonald's is the world's leading global foodservice retailer with nearly 38,000 locations in over 100 countries around the world. Over 92 percent of McDonald's restaurants worldwide are owned and operated by independent local business men and women.
About Dynamic Yield
Dynamic Yield is an AI-powered Personalization Anywhere™ platform that delivers individualized experiences at every customer touchpoint: web, apps, email, kiosks, IoT, and call centers. The platform's data management capabilities provide for a unified view of the customer, allowing the rapid and scalable creation of highly targeted digital interactions. Marketers, product managers, and engineers use Dynamic Yield daily for launching new personalization campaigns, running server-side and client-side A/B tests, leveraging machine-learning for product and content recommendations, and employing algorithms for smartly triggered email and push notifications. Headquartered in New York, the company serves more than 300 brands across the world.
Summary ToggleMcDonald's Adds DoorDash as U.S. McDelivery Partner
Summary ToggleMcDonald's Happy Meal Makes Mealtime Deliciously Balanced, Easy and Magical for Families This Summer
Browse Press
Top Press Releases
Learn More McDonald's Adds DoorDash as U.S. McDelivery Partner
Learn More McDonald's Happy Meal Makes Mealtime Deliciously Balanced, Easy and Magical for Families This Summer
Summary ToggleMcDonald's Restaurants Testing Blueberry McGriddles® Breakfast Sandwich in D.C. Metro
Learn More McDonald's Restaurants Testing Blueberry McGriddles® Breakfast Sandwich in D.C. Metro
Summary ToggleMcDonald's USA Proves Taste And Quality Drive Sales After One Year Of Fresh Beef
Learn More McDonald's USA Proves Taste And Quality Drive Sales After One Year Of Fresh Beef
Summary ToggleMcDonald's Releases Global Report on Efforts to Promote Fruit, Vegetables, Low-Fat Dairy and Water
Learn More McDonald's Releases Global Report on Efforts to Promote Fruit, Vegetables, Low-Fat Dairy and Water


text:
2010 Côte-Rôtie, Côte Blonde, Domaine René Rostaing
Red | Ready, but will improve | Code: 10713 | 2010 | France > Rhône > Côte-Rôtie | Syrah/Shiraz | Medium Bodied, Dry | 13.0 % alcohol
More powerful than its siblings, the Côte Blonde is the longest lived member of the Rostaing family. From 80 year old vines, with clay, iron and gneiss soils, this wine is aged in barrique rather than demi-muid, its structure thus differing from the Landonne; the soil lending more minerality and a touch less acidity, the wood affording a creamy texture in support of the rich blackberry and cassis fruit. This is a wine of rare complexity and elegance, the quintessence of Côte Rôtie in short.
Simon Field MW, BBR Buyer, February 2012
M Rostaing, or RR as we affectionately call him, is something of an enigma, a man giving all semblance of being a classicist, yet whose winemaking philosophy, with its use of rotary fermenters and pragmatic approach to destemming, is far from the old-school. His vocabulary, however, is pleasingly old-fashioned; he likes the 2010 vintage, as there is 'une belle rigueur', describing it as 'Jansenist' in temperament. The classicism now extends to the names of the wines; the wine formerly known as 'Cuvée Classique' has been renamed Ampodium, the Roman name for the town of Ampuis, and the location of his winery.
The Wine Advocate - Truly blockbuster stuff, and a wine that will compete with the 99 when its at full maturity, the 2010 Cte Rtie Cte Blonde gave up a spectacular array of sweet red and black raspberry, cassis, violets and underbrush. A full-bodied, impeccably balanced, yet concentrated and massive Cte Rtie, it has world-class tannin quality, a stacked mid-palate and blockbuster length. It will need another decade to show some maturity, and hold nicely through 2040.
Jeb Dunnuck - 28/02/2015
Parker - A wine of great intensity, the 2010 Cote Rotie Cote Blonde exhibits abundant notes of flowers, raspberry liqueur, kirsch, cedar and forest floor, silky tannins and a long finish. It should drink well for 10-15 years, as the silkiness of this wine is incredibly appealing. Rene Rostaings elegant style is well-displayed in both 2010 and the riper, more fleshy, exuberant 2009 vintage. Always the sexiest wine in Rostaings cellar is the Cote Rotie Cote Blonde. It includes 3-4% co-fermented Viognier and is always the most seamless wine resembling haute couture. (Robert Parker - Wine Advocate #197	Oct 2011)
A noble black grape variety grown particularly in the Northern Rhône where it produces the great red wines of Hermitage, Cote Rôtie and Cornas, and in Australia where it produces wines of startling depth and intensity. Reasonably low yields are a crucial factor for quality as is picking at optimum ripeness. Its heartland, Hermitage and Côte Rôtie, consists of 270 hectares of steeply terraced vineyards producing wines that brim with pepper, spices, tar and black treacle when young. After 5-10 years they become smooth and velvety with pronounced fruit characteristics of damsons, raspberries, blackcurrants and loganberries.
It is now grown extensively in the Southern Rhône where it is blended with Grenache and Mourvèdre to produce the great red wines of Châteauneuf du Pape and Gigondas amongst others. Its spiritual home in Australia is the Barossa Valley, where there are plantings dating as far back as 1860. Australian Shiraz tends to be sweeter than its Northern Rhône counterpart and the best examples are redolent of new leather, dark chocolate, liquorice, and prunes and display a blackcurrant lusciousness.
South African producers such as Eben Sadie are now producing world- class Shiraz wines that represent astonishing value for money.
Côte-Rôtie is one of the most famous of the northern Rhône appellations, with some single vineyard cuvées now selling for the same prices as First Growth Bordeaux. It is the northernmost outpost of the Syrah grape.
Côte-Rôtie translates as 'roasted hillside', as the south-facing slopes are exposed to the maximum-possible sunlight. Vines have been planted here since Roman times, although the appellation was only created in 1940. Today it covers 500 hectares, with 276 hectares of vineyards stretched across eight kilometres.
Phylloxera devastated vineyards in the late 1800s and Côte-Rôtie's fortunes remained in the doldrums for another century. After the War, a farmer would receive double the price for a kilo of apricots as for a kilo of grapes, hence vineyards were grubbed up and wine production became increasingly smaller.
It has only really been recognised as a top-quality wine-producing area since the 1970s, with Guigal being the main impetus behind its revival. The two best slopes, Côte Brune and Côte Blonde, rise steeply behind Ampuis and overlook the river. The Côte Brune wines are much firmer and more masculine (the soils are clay and ironstone), whereas the Côte Blonde makes wines with more finesse and elegance due to its light, sandy-limestone soil. Both the Côte Brune and Côte Blonde vineyards rise to 1,000 feet, with a gradient of 30 to 50 degrees.
The wines are made from the Syrah grape, however up to 20 percent of Viogner can be used in the blend, adding finesse, elegance and floral characteristics to the wine. Viognier ripens more quickly than Syrah and the appellation rules stipulate that the grapes must be added to the fermentation – rather than blended later. The best Côte-Rôtie are very deep in colour, tannic and spicy, and need 10 years to evolve and develop.
There are nearly 60 official vineyards (lieux-dits); the best-known are: La Mouline, La Chatillonne (Vidal-Fleury, owned by Guigal) and La Garde (Rostaing) in Côte Blonde; La Viallière, (Rostaing), La Landonne (Guigal, Rostaing) and La Turque (Guigal) in Côte Brune.
Styles vary from heavily-extracted tannic wines which need many years to soften through to lighter, supple and less-structured wines which do not require extended bottle ageing. The most famous wines of Côte-Rôtie are Guigal's three single-vineyard cuvées: La Mouline, La Turque and La Landonne. These are aged in new wood for 48 months, and demand for them amongst connoisseurs and collectors is significant, leading to prices sometimes comparable to Bordeaux First Growths.
Recommended producers: Guigal, Gerrin, Rostaing, Ogier, Burgaud
Best vintages: 2006, 2005, 2004, 2001, 1999, 1991, 1990, 1985


text:
Win a Magnum 2000 Professional Knapsack Sprayer!
Posted on	June 17, 2016 at 8:57 am	by simon / 0
To celebrate the launch of our new range of Magnum Sprayers, DMMP Limited are offering one lucky person the chance to win a Magnum 2000 Professional Knapsack Sprayer worth £138!!
In order to enter all individuals need to do is like the DMMP Limited Facebook Page (www.facebook.com/dmmplimited) and share the competition post.
The competition is open to residents of the United Kingdom aged 18 years or over except employees of DMMP Limited and their close relatives.
There is no entry fee and no purchase necessary to enter this competition.
By entering this competition, an entrant is indicating his/her agreement to be bound by these terms and conditions.
Route to entry for the competition and details of how to enter are via http://www.facebook.com/DmmpLimited
Closing date for entry will be when the DMMP Limited Facebook Page has reached 250 Page Likes, after this date the no further entries to the competition will be permitted.
No responsibility can be accepted for entries not received for whatever reason.
There is no cash alternative for the prize and the prize is non transferable.
White Christmas?
Posted on	December 22, 2015 at 3:43 pm	by simon / 0
How likely is a White Christmas?
We can accurately forecast if snow is likely on any given Christmas Day up to five days beforehand. In terms of the statistical likelihood of snow based on climatology, we know that a snowflake has fallen somewhere in the UK on Christmas Day 38 times in the last 54 years, so we can probably expect more than half of all Christmas Days to be a 'White Christmas'.
However the more Dickensian scenes of a widespread snow lying on the ground on Christmas Day is much rarer. There has only been a widespread covering of snow on the ground (where more than 40% of stations in the UK reported snow on the ground at 9am) four times in the last 51 years.
When was the last White Christmas?
The last widespread White Christmas in the UK was in 2010. It was extremely unusual, as not only was there snow on the ground at 83% of stations – the highest amount ever recorded – but snow or sleet also fell at 19% of stations.
We also had a White Christmas in 2009 when 13% of stations recorded snow or sleet falling, and 57% reported snow lying on the ground.
Schools Must Resist Closing for Snow
Posted on	September 2, 2015 at 4:01 pm	by simon / 0
Graham Stuart, who chairs Commons education committee, says closures damage children's education and the economy.
Schools must do more to anticipate the effects of bad weather and endeavour to stay open, a senior Tory MP has said a day after snow and ice caused the closure of more than 20% of schools across England.
Such efforts were vital to avoid damaging children's education and the economy through the knock-on effect of parents having to take time off work, which disproportionately affects small businesses, said Graham Stuart, who chairs the cross-party Commons education committee.
He said: "Headteachers really do need to ensure an ethos, a culture in which when people know the weather is coming they anticipate it and they ensure they get to work."
Stuart was speaking a day after Michael Gove, the education secretary, told the Commons he hoped that more schools would recognise that "everything can and should be done in order to ensure that all children get access to a good education", even during snow.
Snow forces closure of Leeds Bradford Airport
Posted on	January 23, 2015 at 10:44 am	by simon / 0
Heavy snowfall overnight caused widespread disruption across parts of the country and forced a major airport to close temporarily.
Yorkshire appeared to have been worst hit, with morning commuters facing difficult driving conditions.
Leeds Bradford Airport closed on Wednesday morning due to the snowfall, but bosses told passengers to arrive as normal.
A spokesman for the airport said it would be shut until at least 9am after around 5cm of snow came down during the night.
However, passengers reported departure boards saying no flights would depart until 10am.
DMMP Ltd are importers of Magnum products in the UK.
Manor Lane, Peckleton, Leicestershire, Le9 7RJPhone: 01455 825400
Email: info@dmmp.co.uk
www.magnumspreaders.co.uk
Magnum Spreaders are commercial grade snow moving equipment, designed and tested in the snow belt of North America. We have the right solution for your snow clearing needs at the best price guaranteed.
by simon
Read our Terms & Conditions
Website Created by Simply Page 1
We would love to hear from you, send us an email and we'll get back to you, asap.


text:
"""Page CMS page_tags template tags"""
from django import template
from django.utils.safestring import SafeText
from django.template import TemplateSyntaxError
from django.conf import settings
from django.utils.text import unescape_string_literal
from django import forms
from django.template.loader import get_template
try:
    from django.templatetags.static import static
except ImportError:
    from django.contrib.staticfiles.templatetags.staticfiles import static

from pages import settings as pages_settings
from pages.models import Content, Page
from pages.placeholders import (
    PlaceholderNode, ImagePlaceholderNode, FilePlaceholderNode
)
from pages.placeholders import ContactPlaceholderNode, MarkdownPlaceholderNode
from pages.placeholders import JsonPlaceholderNode, parse_placeholder
import urllib
from pages.utils import get_placeholders

register = template.Library()

def get_page_from_string_or_id(page_string, lang=None):
    """Return a Page object from a slug or an id."""
    if type(page_string) == int:
        return Page.objects.get(pk=int(page_string))
    # if we have a string coming from some templates templates
    if (isinstance(page_string, SafeText) or
            isinstance(page_string, str)):
        if page_string.isdigit():
            return Page.objects.get(pk=int(page_string))
        return Page.objects.from_path(page_string, lang)
    # in any other case we return the input becasue it's probably
    # a Page object.
    return page_string

def _get_content(context, page, content_type, lang, fallback=True):
    """Helper function used by ``PlaceholderNode``."""
    if not page:
        return ''

    if not lang and 'lang' in context:
        lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)

    page = get_page_from_string_or_id(page, lang)

    if not page:
        return ''

    content = Content.objects.get_content(page, lang, content_type, fallback)
    return content

"""Filters"""

def has_content_in(page, language):
    """Fitler that return ``True`` if the page has any content in a
    particular language.

    :param page: the current page
    :param language: the language you want to look at
    """
    if page is None:
        return False
    return Content.objects.filter(page=page, language=language).count() > 0

register.filter(has_content_in)

"""Inclusion tags"""

def pages_menu(context, page, url='/'):
    """Render a nested list of all the descendents of the given page,
    including this page.

    :param page: the page where to start the menu from.
    :param url: not used anymore.
    """
    lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)
    page = get_page_from_string_or_id(page, lang)
    if page:
        children = page.get_children_for_frontend()
        context.update({'children': children, 'page': page})
    return context

pages_menu = register.inclusion_tag('pages/menu.html',
                                    takes_context=True)(pages_menu)

def pages_sub_menu(context, page, url='/'):
    """Get the root page of the given page and
    render a nested list of all root's children pages.
    Good for rendering a secondary menu.

    :param page: the page where to start the menu from.
    :param url: not used anymore.
    """
    lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)
    page = get_page_from_string_or_id(page, lang)
    if page:
        root = page.get_root()
        children = root.get_children_for_frontend()
        context.update({'children': children, 'page': page})
    return context

pages_sub_menu = register.inclusion_tag('pages/sub_menu.html',
                                        takes_context=True)(pages_sub_menu)

def pages_siblings_menu(context, page, url='/'):
    """Get the parent page of the given page and render a nested list of its
    child pages. Good for rendering a secondary menu.

    :param page: the page where to start the menu from.
    :param url: not used anymore.
    """
    lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)
    page = get_page_from_string_or_id(page, lang)
    if page:
        siblings = page.get_siblings()
        context.update({'children': siblings, 'page': page})
    return context

pages_siblings_menu = register.inclusion_tag(
    'pages/sub_menu.html',
    takes_context=True)(pages_siblings_menu)

def pages_admin_menu(context, page):
    """Render the admin table of pages."""
    request = context.get('request', None)

    expanded = False
    has_query = 'q' in context and context['q']
    if request and "tree_expanded" in request.COOKIES and not has_query:
        cookie_string = urllib.parse.unquote(request.COOKIES['tree_expanded'])
        if cookie_string:
            ids = [
                int(id) for id in
                urllib.parse.unquote(
                    request.COOKIES['tree_expanded']).split(',')
            ]
            if page.id in ids:
                expanded = True
    context.update({'expanded': expanded, 'page': page})
    return context

pages_admin_menu = register.inclusion_tag(
    'admin/pages/page/menu.html', takes_context=True
)(pages_admin_menu)

def show_content(context, page, content_type, lang=None, fallback=True):
    """Display a content type from a page.

    Example::

        {% show_content page_object "title" %}

    You can also use the slug of a page::

        {% show_content "my-page-slug" "title" %}

    Or even the id of a page::

        {% show_content 10 "title" %}

    :param page: the page object, slug or id
    :param content_type: content_type used by a placeholder
    :param lang: the wanted language
        (default None, use the request object to know)
    :param fallback: use fallback content from other language
    """
    return {'content': _get_content(
        context, page, content_type, lang, fallback)
    }

show_content = register.inclusion_tag('pages/content.html',
                                      takes_context=True)(show_content)

def show_absolute_url(context, page, lang=None):
    """
    Show the url of a page in the right language

    Example ::

        {% show_absolute_url page_object %}

    You can also use the slug of a page::

        {% show_absolute_url "my-page-slug" %}

    Keyword arguments:
    :param page: the page object, slug or id
    :param lang: the wanted language \
        (defaults to `settings.PAGE_DEFAULT_LANGUAGE`)
    """
    if not lang:
        lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)
    page = get_page_from_string_or_id(page, lang)
    if not page:
        return {'content': ''}
    url = page.get_url_path(language=lang)
    if url:
        return {'content': url}
    return {'content': ''}

show_absolute_url = register.inclusion_tag(
    'pages/content.html',
    takes_context=True)(show_absolute_url)

def show_revisions(context, page, content_type, lang=None):
    """Render the last 10 revisions of a page content with a list using
        the ``pages/revisions.html`` template"""
    if (not pages_settings.PAGE_CONTENT_REVISION or
            content_type in pages_settings.PAGE_CONTENT_REVISION_EXCLUDE_LIST):
        return {'revisions': None}
    revisions = Content.objects.filter(
        page=page, language=lang,
        type=content_type).order_by('-creation_date')
    if len(revisions) < 2:
        return {'revisions': None}
    return {'revisions': revisions[0:10]}

show_revisions = register.inclusion_tag(
    'pages/revisions.html',
    takes_context=True)(show_revisions)

def pages_dynamic_tree_menu(context, page, url='/'):
    """
    Render a "dynamic" tree menu, with all nodes expanded which are either
    ancestors or the current page itself.

    Override ``pages/dynamic_tree_menu.html`` if you want to change the
    design.

    :param page: the current page
    :param url: not used anymore
    """
    lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)
    page = get_page_from_string_or_id(page, lang)
    children = None
    if page and 'current_page' in context:
        current_page = context['current_page']
        # if this node is expanded, we also have to render its children
        # a node is expanded if it is the current node or one of its ancestors
        if(
            page.tree_id == current_page.tree_id and
            page.lft <= current_page.lft and
            page.rght >= current_page.rght
        ):
            children = page.get_children_for_frontend()
    context.update({'children': children, 'page': page})
    return context

pages_dynamic_tree_menu = register.inclusion_tag(
    'pages/dynamic_tree_menu.html',
    takes_context=True
)(pages_dynamic_tree_menu)

def pages_breadcrumb(context, page, url='/'):
    """
    Render a breadcrumb like menu.

    Override ``pages/breadcrumb.html`` if you want to change the
    design.

    :param page: the current page
    :param url: not used anymore
    """
    lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)
    page = get_page_from_string_or_id(page, lang)
    pages_navigation = None
    if page:
        pages_navigation = page.get_ancestors()
    context.update({'pages_navigation': pages_navigation, 'page': page})
    return context

pages_breadcrumb = register.inclusion_tag(
    'pages/breadcrumb.html',
    takes_context=True
)(pages_breadcrumb)

"""Tags"""

class GetPageNode(template.Node):
    """get_page Node"""
    def __init__(self, page_filter, varname):
        self.page_filter = page_filter
        self.varname = varname

    def render(self, context):
        page_or_id = self.page_filter.resolve(context)
        page = get_page_from_string_or_id(page_or_id)
        context[self.varname] = page
        return ''

def do_get_page(parser, token):
    """Retrieve a page and insert into the template's context.

    Example::

        {% get_page "news" as news_page %}

    :param page: the page object, slug or id
    :param name: name of the context variable to store the page in
    """
    bits = token.split_contents()
    if 4 != len(bits):
        raise TemplateSyntaxError('%r expects 4 arguments' % bits[0])
    if bits[-2] != 'as':
        raise TemplateSyntaxError(
            '%r expects "as" as the second argument' % bits[0])
    page_filter = parser.compile_filter(bits[1])
    varname = bits[-1]
    return GetPageNode(page_filter, varname)

do_get_page = register.tag('get_page', do_get_page)

class GetContentNode(template.Node):
    """Get content node"""
    def __init__(self, page, content_type, varname, lang, lang_filter):
        self.page = page
        self.content_type = content_type
        self.varname = varname
        self.lang = lang
        self.lang_filter = lang_filter

    def render(self, context):
        if self.lang_filter:
            self.lang = self.lang_filter.resolve(context)
        context[self.varname] = _get_content(
            context,
            self.page.resolve(context),
            self.content_type.resolve(context),
            self.lang
        )
        return ''

def do_get_content(parser, token):
    """Retrieve a Content object and insert it into the template's context.

    Example::

        {% get_content page_object "title" as content %}

    You can also use the slug of a page::

        {% get_content "my-page-slug" "title" as content %}

    Syntax::

        {% get_content page type [lang] as name %}

    :param page: the page object, slug or id
    :param type: content_type used by a placeholder
    :param name: name of the context variable to store the content in
    :param lang: the wanted language
    """
    bits = token.split_contents()
    if not 5 <= len(bits) <= 6:
        raise TemplateSyntaxError('%r expects 4 or 5 arguments' % bits[0])
    if bits[-2] != 'as':
        raise TemplateSyntaxError(
            '%r expects "as" as the second last argument' % bits[0])
    page = parser.compile_filter(bits[1])
    content_type = parser.compile_filter(bits[2])
    varname = bits[-1]
    lang = None
    lang_filter = None
    if len(bits) == 6:
        lang = bits[3]
    else:
        lang_filter = parser.compile_filter("lang")
    return GetContentNode(page, content_type, varname, lang, lang_filter)

do_get_content = register.tag('get_content', do_get_content)

class LoadPagesNode(template.Node):
    """Load page node."""
    def render(self, context):
        if 'pages_navigation' not in context:
            pages = Page.objects.navigation().order_by("tree_id")
            context.update({'pages_navigation': pages})
        if 'current_page' not in context:
            context.update({'current_page': None})
        return ''

def do_load_pages(parser, token):
    """Load the navigation pages, lang, and current_page variables into the
    current context.

    Example::

            {% load_pages %}
            {% for page in pages_navigation %}
                {% pages_menu page %}
            {% endfor %}

    """
    return LoadPagesNode()

do_load_pages = register.tag('load_pages', do_load_pages)

class LoadEditNode(template.Node):
    """Load edit node."""

    def render(self, context):
        request = context.get('request')
        if not request.user.is_staff:
            return ''
        template_name = context.get('template_name')
        placeholders = get_placeholders(template_name)
        page = context.get('current_page')
        if not page:
            return ''
        lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)
        form = forms.Form()
        for p in placeholders:
            field = p.get_field(
                page, lang, initial=p.get_content_from_context(context))
            form.fields[p.name] = field

        template = get_template('pages/inline-edit.html')
        with context.push():
            context['form'] = form
            context['edit_enabled'] = request.COOKIES.get('enable_edit_mode')
            content = template.render(context.flatten())

        return content

def do_load_edit(parser, token):
    """
    """
    return LoadEditNode()

do_load_edit = register.tag('pages_edit_init', do_load_edit)

class LoadEditMediaNode(template.Node):
    """Load edit node."""

    def render(self, context):
        request = context.get('request')
        if not request.user.is_staff:
            return ''
        template_name = context.get('template_name')
        placeholders = get_placeholders(template_name)
        page = context.get('current_page')
        lang = context.get('lang', pages_settings.PAGE_DEFAULT_LANGUAGE)
        form = forms.Form()
        for p in placeholders:
            field = p.get_field(page, lang)
            form.fields[p.name] = field

        link = '<link href="{}" type="text/css" media="all" rel="stylesheet" />'.format(
            static('pages/css/inline-edit.css')
            )

        return "{}{}".format(form.media, link)

def do_load_edit_media(parser, token):
    """
    """
    return LoadEditMediaNode()

do_load_edit = register.tag('pages_edit_media', do_load_edit_media)

def do_placeholder(parser, token):
    """
    Method that parse the placeholder template tag.

    Syntax::

        {% placeholder <name> [on <page>] [with <widget>] \
[parsed] [as <varname>] %}

    Example usage::

        {% placeholder about %}
        {% placeholder body with TextArea as body_text %}
        {% placeholder welcome with TextArea parsed as welcome_text %}
        {% placeholder teaser on next_page with TextArea parsed %}
    """
    name, params = parse_placeholder(parser, token)

    return PlaceholderNode(name, **params)
register.tag('placeholder', do_placeholder)

def do_markdownlaceholder(parser, token):
    """
    Method that parse the markdownplaceholder template tag.
    """
    name, params = parse_placeholder(parser, token)
    return MarkdownPlaceholderNode(name, **params)
register.tag('markdownplaceholder', do_markdownlaceholder)

def do_imageplaceholder(parser, token):
    """
    Method that parse the imageplaceholder template tag.
    """
    name, params = parse_placeholder(parser, token)
    return ImagePlaceholderNode(name, **params)
register.tag('imageplaceholder', do_imageplaceholder)

def do_fileplaceholder(parser, token):
    """
    Method that parse the fileplaceholder template tag.
    """
    name, params = parse_placeholder(parser, token)
    return FilePlaceholderNode(name, **params)
register.tag('fileplaceholder', do_fileplaceholder)

def do_contactplaceholder(parser, token):
    """
    Method that parse the contactplaceholder template tag.
    """
    name, params = parse_placeholder(parser, token)
    return ContactPlaceholderNode(name, **params)
register.tag('contactplaceholder', do_contactplaceholder)

def do_jsonplaceholder(parser, token):
    """
    Method that parse the contactplaceholder template tag.
    """
    name, params = parse_placeholder(parser, token)
    return JsonPlaceholderNode(name, **params)

register.tag('jsonplaceholder', do_jsonplaceholder)

def language_content_up_to_date(page, language):
    """Tell if all the page content has been updated since the last
    change of the official version (settings.LANGUAGE_CODE)

    This is approximated by comparing the last modified date of any
    content in the page, not comparing each content block to its
    corresponding official language version.  That allows users to
    easily make "do nothing" changes to any content block when no
    change is required for a language.
    """
    lang_code = getattr(settings, 'LANGUAGE_CODE', None)
    if lang_code == language:
        # official version is always "up to date"
        return True
    # get the last modified date for the official version
    last_modified = Content.objects.filter(
        language=lang_code,
        page=page).order_by('-creation_date')
    if not last_modified:
        # no official version
        return True
    lang_modified = Content.objects.filter(
        language=language,
        page=page).order_by('-creation_date')[0].creation_date
    return lang_modified > last_modified[0].creation_date

register.filter(language_content_up_to_date)

def do_page_has_content(parser, token):
    """
    Conditional tag that only renders its nodes if the page
    has content for a particular content type. By default the
    current page is used.

    Syntax::

        {% page_has_content <content_type> [<page var name>] %}
            ...
        {%_end page_has_content %}

    Example use::

        {% page_has_content 'header-image' %}

        {% end_page_has_content %}

    """
    nodelist = parser.parse(('end_page_has_content',))
    parser.delete_first_token()
    args = token.split_contents()
    try:
        content_type = unescape_string_literal(args[1])
    except IndexError:
        raise template.TemplateSyntaxError(
            "%r tag requires the argument content_type" % args[0]
        )
    if len(args) > 2:
        page = args[2]
    else:
        page = None
    return PageHasContentNode(page, content_type, nodelist)

register.tag('page_has_content', do_page_has_content)

class PageHasContentNode(template.Node):

    def __init__(self, page, content_type, nodelist):
        self.page = page or 'current_page'
        self.content_type = content_type
        self.nodelist = nodelist

    def render(self, context):
        page = context.get(self.page)
        if not page:
            return ''
        content = page.get_content(
            context.get('lang', None), self.content_type)
        if(content):
            output = self.nodelist.render(context)
            return output
        return ''

redpajama_set_name: RedPajamaGithub


Office 365 Resource Calendars aka "Rooms"
I have a client that used to be on a local exchange server that recently switched to Office 365. They used to have their conference room and vacation calendars setup as public folders. When they would schedule an appointment they would have to schedule it manually for the user and manually again for the room/vacation.
When we migrated them over to Office 365 they switched the public folders to shared mailboxes. They were still having to double post each appointment. What I did was switch them to "rooms". I was able to use power-shell to convert the shared mailbox to a resource mailbox and that went fine. Now I have a few problems that I need help with.
2) There are duplicate calendars showing up in outlook that seem to be a reminiscence of the old shared mailboxes. So I have the "rooms" showing up under Rooms but I also have the conference room and vacation calendars showing up that I can't check off under Shared Calendars.
Is there a way to only have the rooms show up and not auto-open the mailbox in Outlook? I am not sure if something happened with the permissions when I converted them over. I hope I asked the right questions here I am really not sure how to word it. Hoping it strikes a bell with someone that maybe had a similar issue. All users have Office 2016.
1) You most likely have them added via Automapping, i.e. the user have Full access permissions on them. This is not necessary when using Room mailbox, so just remove the permissions. Also check via File -> Account settings -> More -> Advanced and if the mailbox is listed there, remove it.
2) Similar to the above, this is most likely a side effect of having the mailboxes automapped.
Thanks Vasil I will check into this. Will this effect everyones' ability to be able to post to them? Outside of the Vacation calendar which has 2 delegates. I need all 20 employees to be able to schedule the rooms. Are you saying that resource mailboxes require no permissions?
You're not supposed to create entries directly into the room mailbox' Calendar. Instead, you designate the room in the meeting request, the message gets sent to the room mailbox and the room calendar assistant automatically approves/declines it. By default everyone can send requests to room mailboxes and they will be approved unless there is a conflict. You can customize the permissions if needed or designate some delegates.
Yes they don't want full permission to book the conference room, when it was shared box those users have full permission with automap enabled, for that reason the mailbox are reside in outlook client. Just remove the permissions from the box.
You can add the appropriate permission to this particular Conference rooms using add-adpermission command.
Also, make sure the RBA (Resource Booking Attendant) is enabled in that conference room.


It has always been my feeling that every piece of sophisticated training equipment should have a course or a guide explaining how to use it most effectively. After all, you've got to understand the basics but the small details can also make quite a difference …and when someone isn't sure what to do, they either "do it all wrong" or soon lose interest, hence the reason why it is incredibly important to understand exactly what you should be doing.
If you've already got a Gerard Trap Bar (or are thinking seriously about ordering one), you're probably aware of what a uniquely effective piece of equipment it is.When used properly, the Trap Bar will help you develop incredible levels of strength. You'll notice that the first three words in that last sentence were "when used properly."While use of the Trap Bar may seem intuitive enough, if you want to get the most out of your training there is a great deal you'll need to know about proper form for various Trap Bar movements, exercises that you may not be aware of, and how to work the Trap Bar into your broader training program.And who better ask about the Trap Bar than the man who invented it: Al Gerard himself?
First of all, the Trap Bar is a serious piece of equipment meant for serious training. If you don't expect to "pull" and deadlift some serious weights lest you get a few calluses, well then it isn't for you and you can stop reading right now.
Second, over the past two decades the Trap Bar has firmly established itself as a "must have" piece of training equipment since it does its job so effectively, yet there really isn't a whole lot of material about how to use it.
Imagine sitting down with Al Gerard face to face and having him teach you everything you would ever want to know about Trap Bar training – that's exactly what you'll find in this new training guide. We went back in the archives and found a Trap Bar training program that Al originally put together for an old issue of Powerlifting USA – that article is reprinted in full on page 27 of our new training guide.
Al Gerard isn't the only expert out there who has something to say about using the Trap Bar effectively.
Dr. Ken Leistner has been a devoted Trap Bar user himself for over two decades and was one of the first to recommend it back in his "Steel Tip" newsletter.In Dr. Ken's own words, the athletes he has trained "have found that certain exercises are definitely improved and have brought unexpectedly positive results."In "Dr. Ken's Trap Bar Workout," we take another trip back in time, this time to an article written by Dr. Ken on Trap Bar training in 1989, reprinted here from Powerlifting USA magazine.
In addition, we feature a previously unpublished training program written by Dr. Ken which he has used with great success with his trainees. You'll learn how to use the Trap Bar for Dr. Ken's favorite Trap Bar exercises as well as recommendations on specific set and rep recommendations.
This glossy training booklet measures 4-1/4″ x 5-1/2″ and has 28 information-packed pages and is fully illustrated.
A few weeks ago I sent out a brief email of only a few hundred words talking about my recent training with the Trap Bar, and this generated an unexpected response. It seems a lot of people have questions about some of the details of incorporating the Trap Bar into their own workouts. In the spirit of never having too much good training information, I've expanded on my initial discussion and written a new Special Report – "The 5 x 2 Trap Bar Training Program" – that shows you some specific details of a program that I have been using with excellent results. You won't want to miss it.
If you want to get the most from your Gerard Trap Bar, you need to have solid training information. I can think of no better place to turn than the wisdom of two men who have benefited greatly from using the Trap Bar: Al Gerard and Dr. Ken Leistner.
Oh yeah, and I've got a few things to say on the subject myself – so be sure to check out my new Special Report, which I'll include free with every order for the 2-booklet set of Gerard Trap Bar Training Guides detailed above.


text:
Q: Why is array length zero for a array that has contents? Here's my code:
<script type="text/javascript" src="read.js"></script>
<script>
  var beats=[]
  beats=read('heartRate.txt')
  console.log(beats)           //label 1
  console.log(beats.length)    //label 2
  for (i = 0; i < beats.length; i++) {
    console.log(beats[i])
    if(parseInt(beats[i])>80 || parseInt(beats[i])<50){
      document.getElementById('Alert').innerHTML('Abnormal heartrate of '+parseInt(beats[i]))
    }
  }
  console.log(beats)
</script>

And here is the contents of read.js:
function read(filename){
    var fs = require('fs');
      var readline = require('readline');
      var stream = require('stream');

      var str =[]
      var instream = fs.createReadStream(filename);
      var outstream = new stream;
      var rl = readline.createInterface(instream, outstream);

      rl.on('line', function(line) {
        //console.log(line+'\n')
        str.push(line)
      });

      rl.on('close', function() {
        // do something on finish here
        console.log(str.length)
      });
      return str;
}

Label 1: the value printed in the console shows the array with its contents.
Label 2: the length of the array is shown as 0.
Is there any way to find the size of the array?

The console image is attached here:

A: I guess it is because of the read() function is asynchronous and it will take some time to finish the execution. Initially, the length was printed as zero then came the actual value 5. Try to return a promise from read() function and see how it works.
 function async read(filename){
    var fs = require('fs');
      var readline = require('readline');
      var stream = require('stream');

      var str =[]
      var instream = fs.createReadStream(filename);
      var outstream = new stream;
      var rl = readline.createInterface(instream, outstream);

      rl.on('line', function(line) {
        //console.log(line+'\n')
        str.push(line)
      });

      rl.on('close', function() {
        // do something on finish here
        console.log(str.length)
      });
      return str;
}

    <script type="text/javascript" src="read.js"></script>
    <script>
      var beats=[]
      read('heartRate.txt').then(function(data){
        beats=data
        //do your stuff here
      })

    </script>

A: Wont work beacuse,
console.log(beats)           //label 1
console.log(beats.length)

Reading happens asynchronously, the push would execute only after,
rl.on('line', function(line) {
        //console.log(line+'\n')
        str.push(line)
      });

Add it on the close (rl.on('close',).

A: You should make read return a promise and only use the data when it's finished loading all data:
function read(filename){
  return new Promise((resolve, reject) => {
    const fs = require("fs");
    const readable = fs.createReadStream(filename);
    let data = [];
    readable.on('data', chunk => {
      data.push(chunk);
    });
    readable.on('end', () => {
      resolve(data);
    });
    readable.on('error', err => {
      reject(err);
    });
  }
}

You can use it like this:
<script type="text/javascript" src="read.js"></script>
<script>
  read('heartRate.txt').
  then(beats => {
    console.log(beats)           //label 1
    console.log(beats.length)    //label 2
    for (i = 0; i < beats.length; i++) {
      console.log(beats[i])
      if(parseInt(beats[i])>80 || parseInt(beats[i])<50){
       document.getElementById('Alert').innerHTML(`Abnormal heartrate of ${parseInt(beats[i])} beats`);
      }
    }
    console.log(beats)
  })
  .catch(err => console.log(`Oh no, an error has occurred: ${err} `));

</script>


text:
Q: How to Change the iMessages Conference Hostname in Maverics (Mountion Lion) Server I was running a iChat Server success on Snow Leopard Server.
Connections were running for:
ichat.myservername.com
And the conference server was:
conference.ichat.myservername.com
I have new machine with Maverics server installed.
I have DNS running on the box that properly maps my hostname name (ichat.servername.com) to my internal IP (172.16.1.50).
I have the DNS properly registered externally at my provider for the external IP of the gateway.
My chat server is properly working using:
ichat.myservername.com
But my server has set the conferencing server name to:
rooms.myservername.local
Users inside my network can set that for their conference server it all works well, but how do I change configuration to use the standard:
conference.ichat.myservername.com
I've noticed that /Library/Server/Messages/Config/Rooms.plist
has:
domain
myservername.local
name
rooms
But if I change those settings the Jabber server goes into an infinite loop on startup with "connection closed"

A: I've solved this problem.  Not exactly as I'd hope.
1) I made sure that my hostname was properly configured in server config.
2) Shutdown Jabber:
serveradmin stop jabber
3) Rebuilt config files from source:
/Applications/Server.app/Contents/ServerRoot/usr/libexec/copy_message_server_con fig_files.sh
4) Edit Rooms.plist
/Library/Server/Messages/Config/Rooms.plist
Change the name to conference:
        name
        conference
I also needed to fix my host name in two other files:
5) Edit SM:
/Library/Server/Messages/Config/jabberd/sm.xml

        ichat.myservername.com
6) Edit C2S
/Library/Server/Messages/Config/jabberd/c2s.xml:
ichat.myservername.com
7) Restart the server:
sudo serveradmin start jabber
All looks good at this point.


text:
Out of Africa Wildlife Park in Camp Verde, AZ
3505 W State Route 260 • Camp Verde, AZ 86322
Our Customers Rate It:
Very Good! Read »
Out of Africa Wildlife Park & Verde Canyon Railroad Package
Price based on 2 adults. Customize to see price.
Out of Africa Wildlife Park Vacation Package
Predator Zip Lines and Out of Africa Wildlife Ticket Combo
See hundreds of exotic animals roaming their spacious habitats – in Arizona! Nestled on over 100 acres in the heart of Verde Valley, Out of Africa Wildlife Park promotes conversation awareness of these awe-inspiring animals through peaceful interactions. Hitch a ride on the African Bush Safari, see entertaining shows like Tiger Splash, and more. No passport needed!
1 or more people
from Ashley, one of our Camp Verde Travel Experts
See over 100 exotic animals, including nearly 40 exotic big cats like lions, tigers, leopards, jaguar, and cougars.
Plenty of opportunities to pet the more docile members of the animal kingdom.
Allow 4-5 hours to experience all the park's adventures.
Most pathways and driveways are compacted dirt or gravel, so wear comfortable walking shoes.
Sunscreen is strongly suggested, and is available for purchase on site.
from Out of Africa Wildlife Park
"Call us wild. Call us crazy. Just don't call us a zoo."
Set against the backdrop of the beautiful Mingus Mountains of Camp Verde, Out of Africa Wildlife Park is nestled on over 100 acres of rolling hills and valleys. This setting is home to hundreds of exotic mammals, birds, and reptiles from all over the world. It's the perfect place to raise the awareness of our exotic neighbors while promoting understanding through in-person contact. It truly is an awe-inspiring adventure blending family bonds with the power and cunning of the wild.
Our park strives to educate and entertain, to provide an exciting and engaging opportunity to love and respect creation and Creator. It is a place where family and friends gather to experience oneness with animals and each other during safaris, tours, walks, observations, and shows of wild-by-nature animals in their own natural splendor. In this way, we hope to achieve a kind of oneness with them, which will cause us to consider them to be so valuable that we cannot allow them to be lost forever. We continually provide natural living spaces for animals in need, so they can become ambassadors of their own kind. We have heeded the call of those without a voice, who now border on extinction.
Out of Africa Wildlife Park Reviews
2 Reviews sorted by:
Gabriel Lopez
"Reliable service at a great price."
After looking everywhere online for discounted tickets, I found Tripster. I was
little skeptical at first, but I bought the tickets, and was able to save $50 on my purchase. They were accepted at the park without issue, and would recommend them for future purchases.
Tip: Discounted tickets for your their events are legitimate.
Was this review helpful? Yes
Danielle Loizzo
"Great day"
We had a great day out at the zoo. The animals were so close to us and awesome to see active.
Tip: It is a ton of walking and it is all dirt paths.
Out of Africa Wildlife Park is located at 3505 W State Route 260 • Camp Verde, AZ 86322
Predator Zip Lines
Verde Canyon Railroad Train Ride
Hilton Sedona Resort at Bell Rock
Bell Rock Inn
Southwest Inn at Sedona
GreenTree Inn Sedona
Los Abrigados Resort and Spa
Frequently Asked Questions about Out of Africa Wildlife Park
Where is Out of Africa Wildlife Park?
Out of Africa Wildlife Park in Camp Verde is located in the geographical center of Arizona. Their address is 3505 W. Camp Verde Bridgeport Highway, Camp Verde, AZ 86322. For GPS or driving directions use: 3505 W. SR-260, Camp Verde, AZ 86322. The drive up or down scenic Interstate 17 will take you to the park without the congestion of the city or the gridlock of endless traffic lights. Located three miles west of I-17 on SR-260, use exit 287.
How long should we plan to spend at the park?
Allow 4 to 5 hours to experience all the park's adventures.
What kind of animals will I see at Out of Africa Wildlife Park?
In addition to the nearly 40 exotic big cats including lions, tigers, leopards, jaguar, and cougars, Out of Africa Wildlife Park is composed of hundreds of mammals, birds, and reptiles representing the incredible biological diversity of forests, jungles, and plains of the world, including Africa and many other continents. The experience includes a bush safari tour showcasing herd-style animals from the plains and savannas of Africa and Asia where you'll observe free-roaming giraffes, antelopes, zebras, ostriches, water buffalo, gemsboks, elands, and many more. The preserve was designed to give the animals the ability to interact and roam about freely as they do in the wild. Some of the animals that live at the park are classified as threatened or near threatened, meaning they are in danger of being placed in the "threatened" category in the future.
Can I pet any of the animals?
Yes, there will be plenty of opportunities to pet the more docile members of the animal kingdom at the park. For example, on the safaris you'll usually be able to feed and pet giraffe. The Pet-N-Feed features gentle, friendly creatures that are fun and safe to interact with. You'll also have an opportunity to safely pet giant pythons, anacondas, and more at the Giant Snake show. There is even a good chance of touching a participating animal during the Creature Feature show, depending on animal mannerism and availability. For the animals that cannot be touched, you'll be surprised at just how close you do get.
Are pets or service dogs allowed inside the park?
No. For the safety of animals, guests and staff who work with wild animals directly, they do not allow pets or service animals inside the park. They also discourage guests from bringing pets and leaving them in parked cars. Distressed pets will be removed from vehicles if deemed necessary for the safety of the animal.
What are the Out of Africa Wildlife Park hours?
Park hours are from 9:30 AM to 5:00 PM. The park is closed on Thanksgiving Day and Christmas Day. Last admission is one our before closing time. Park hours are subject to change.
What is the weather like at the park?
Temperatures at Out of Africa Wildlife park are generally about 10-degrees cooler than the Phoenix area during summer, spring and fall. The park elevation is approximately 3,000 feet; a significant contrast from Flagstaff, its neighbor to the north, which is nearly 7,000 feet at its low point.
What is the smoking policy at the park?
While smoking is prohibited throughout the park, there are two designated outdoor smoking areas located by the park entrance and at the upper court area near the Tiger Splash arena.
What type of food service is available at the park?
Meals such as hamburgers, veggies burgers, chicken sandwiches, hot dogs, smoothies, soups, and salads are available from outdoor food service at the park. No outside food is allowed.
Can I bring food into the park?
Outside food and beverages cannot be brought into the park. That includes large coolers. Guests may bring bottled water into the park. No facilities are available for food storage. Food concessions are available at the park.
Comfortable shoes are recommended. Bear in mind that most pathways and driveways are compacted dirt or gravel. For your own comfort guests are discouraged from wearing dress-type shoes. On sunny days, sunscreen is recommended. Sunscreen is available for purchase at the gift shop located at the park entrance. They also recommend wearing layers of clothes so you can properly react to temperature changes throughout the day.
Can my infant go on the African Bush Safari Tour?
Yes, the Africa Bush Safari is enjoyed by all ages. The African Bush Safari Tours operate throughout the day. As a courtesy to others on the tour, please exercise good judgment when bringing a small child on the vehicle.
Sedona Sitemap
Map of Sedona


text:
BC Beat
Guest Blog: Sports Leagues Must Get Cord-Cutters Back in the Lineup
Better OTT and streaming solutions will help traditional nets stay ahead of the game
Brandon Eatros, CEO of Yidio
In the last year, professional sports leagues have embraced live-streaming to reach cord-cutting fans who have been desperate for access to their favorite games and events. Even so, many of these streaming packages aren't quite what leagues chalked them up to be, leaving something to be desired for sports enthusiasts. Strict blackout rules and device restrictions kept many cord-cutters from catching the game from the comfort of their own home in 2016.
Despite the challenges cord-cutters face with watching live sports, they aren't jumping back on the pay-TV bandwagon. More and more consumers are cutting the cord, even sports fans, as ESPN's recent filing revealed, are saying good-bye to traditional TV subscriptions in favor of lower priced, over-the-top (OTT) options. Despite challenges with current OTT or streaming sports solutions, fans are willing to make it work to avoid paying the high-cost for cable packages, but we can't expect them to deal with these issues forever.
Leagues need to spend more time and money on building better OTT and streaming solutions or eventually they'll suffer the same fate as the once untouchable ESPN. I am part of this tech-savvy generation of sports fans and I along with many others won't put up with low-tech solutions that are too expensive and riddled with problems. We're rooting for the leagues, but we have a few demands for 2016, including:
1. Access Anywhere
Leagues need to think beyond delivering content to the TV. Consumers are accustomed to accessing content anytime and anywhere, so leagues need to develop comprehensive streaming packages that allow users to tune in on-the-go, across any device. Delivering content to fans' phones and tablets will help leagues create a more complete viewing experience. Though some leagues have rolled out streaming packages for cross-device access including NBA's League Pass, many still require users to log in via their cable subscription, so it's virtually unusable for cord-cutters unless they use a friend or family members' subscription.
2. A Solution for Local Blackouts
Without a doubt, sports fans' primary complaint with current streaming services is the issue of local blackouts. These blackouts occur so leagues can restrict live access to local games in order to boost stadium ticket sales. Though, tech savvy cord-cutters have found plenty of workarounds. For example, we're seeing people bring back the ancient technology known as "bunny ears" (TV antennas) or they're running IP vanishing apps to trick the service, so it appears that their Internet traffic is coming from somewhere else. But these solutions can still be unreliable and the only tried and true option is going to a local bar or restaurant, which for most sports fans is not a preferable option week after week. Cord-cutters are looking to cut costs, but still have access to their favorite shows, games and movies. It may seem like they're asking for a lot, but this is today's reality and leagues should know that one way or another cord-cutters will find a solution and it probably won't be the solution leagues want or need.
3. More Content, Old and New
As leagues continue to improve their own streaming platforms, they will inevitably join the content development business. Leagues will need to create strong wrap-up and highlight content, introducing sport personalities and giving fans more access to behind the scenes content. Leagues themselves must become content machines, likely in the form of mini creative studios, which house producers, creative directors, and development teams. In addition, it's not just new content leagues need to focus on, they need to archive the older games and major sporting events that fans want to re-watch anytime and anywhere. This is how they'll remain competitive amongst other OTT services that are doing this well right now.
Sports have, and will continue to be a major pain point for fans looking to cut-the-cord, and in the year ahead it's likely we'll begin to see leagues respond more directly to consumer challenges in order to create a more seamless viewer experience. Leagues don't want to succumb to the same fate as networks like ESPN, and in order to remain competitive and retain fan attention they need to address these major issues within their current offerings. Let's hope leagues take what us fans are saying to heart and create a solution that shows they're in tune with today's marketplace.
Brandon Eatros is the CEO and co-founder of Yidio, the premier cross platform search & discovery app for TV shows & movies. With millions of engaged monthly users across their top ranked iPhone, iPad, Android and Web apps - Yidio makes it easy to search, discover, and watch over 1 million TV shows & movies across hundreds of content services. Founded in 2008, Yidio (short for "Your Internet Video") is headquartered in San Francisco and is available on the iOS, Android, Kindle app stores and the Web.
Guest Blog: TV Must Go Digital to Get the Kids Back
The next 'Ren & Stimpy' won't come from Nickelodeon but from a pure digital player
Guest Blog: Driving Live Tune-In in an On-Demand, Digital Age
Binge-watching and OTT services are here to stay. But live TV viewership remains an important part of the viewing mix.
Guest Blog: One Key to OTT Success: Agile Billing
Customers have an easier time paying for OTTs than traditional cable bundles
Comcast's Steve Burke On 'Cord Cutters'
Guest Blog: The Near-Death Experience of Linear Television
Change is more gradual than chaotic, but consumer still coming out ahead
Guest Blog: Baseball's Coming Media Revenue Crisis
MLB television and franchise revenues will start eroding because the sport lost the young demo
Guest Blog: How OTT Hides Television's Revolution
Terminology of OTT suggests separate worlds of television that are clearly intertwined
Guest Blog: eSports Broadcasters Need to Monetize
The industry is more popular than ever but lags behind traditional sports revenue-wise


Skyline Construction & Waterproofing, Inc.
New Mark Painting & Construction, Inc.
Comment: The is the backyard of a brownstone in Harlem, Manhattan. It is a rectangular yard measures 23' from the back of the house and is 15'6" wide. There are where the ac/heating condensers are mounted on at wall in the yard. I am looking to put down large rectangular pavers throughout the whole yard, a small deck out right outside the back door to cover a grate and a fence around the perimeter of the yard to cover the neighbors ground floor windows and hide the condenser units and their piping. I want to make sure everything is graded properly for drainage and for proper steps to be taken to stop weeds from growing in the future.
Comment: I would like to get an estimate for repairing concrete steps.
Comment: Hello We have old concrete floors in our commercial space in Manhattan, we would like to stain them to make them an irregular dark gray. We have 3,000 sq ft that would need to be stained. The landlord will be putting a penetrating sealant on after the staining is complete. Look forward to hearing from you.
Comment: there is a small crack in the concrete wall above the third story window. it is very high up, looks like it needs to be sealed and then painted. My handyman cannot reach that high.
New York Concrete Contractors are rated 4.74 out of 5 based on 1,143 reviews of 92 pros.
Not Looking for Concrete Contractors in New York, NY?