ark Monterey Park Bruggemeyer Library Receives 2020 ALSC/Candlewick Press "Light the Way" Grant By www.ala.org Published On :: Tue, 25 Feb 2020 17:14:54 +0000 The Association for Library Service to Children (ALSC), a division of the American Library Association (ALA), has announced that Monterey Park Bruggemeyer Library is the recipient of the 2020 ALSC/Candlewick Press "Light the Way: Outreach to the Underserved" Grant. As the winner of the grant, the library will receive $3,000 to develop Sensory Storytimes for immigrant families who are learning to navigate an autism spectrum disorder diagnosis. Full Article
ark Video: Typhoon jets fly over Belfast to mark VE Day By www.belfastlive.co.uk Published On :: Fri, 8 May 2020 14:20:51 +0000 One of the jets dipped its wings in salute Full Article News
ark West Belfast lad cycling round Falls Park every day to raise money for hospice By www.belfastlive.co.uk Published On :: Sat, 9 May 2020 08:41:49 +0000 Rossa Doherty asked his mummy what he could do to help after seeing Full Article News
ark Marketplace/Edison Research Study Shows Economic Anxiety, Fear Increasing By www.allaccess.com Published On :: Wed, 06 May 2020 10:35:37 -0700 AMERICAN PUBLIC MEDIA's MARKETPLACE and EDISON RESEARCH have released new polling data showing Americans' increasing economic anxiety due to the pandemic. In the annual survey, 69% of … more Full Article
ark Eastlan Ratings Adds Five New Markets By www.allaccess.com Published On :: Wed, 06 May 2020 01:20:01 -0700 EASTLAN RATINGS has added five new markets, with continuous measurement being launched in the adjacent SAN LUIS OBISPO and SANTA MARIA, CA markets and once-a-year measurement on tap for … more Full Article
ark Chris Oliviero Returns To Entercom As New York SVP/Market Manager By www.allaccess.com Published On :: Wed, 06 May 2020 06:31:42 -0700 CHRIS OLIVIERO has returned to ENTERCOM as SVP/Market Manager for the NEW YORK cluster, News WINS-A, News WCBS-A, Sports WFAN-A-F, Alternative WNYL (ALT 92.3), AC WNEW (NEW 102.7), Country … more Full Article
ark I don't need hype to fuel my boxing career - Caoimhin Agyarko By www.belfastlive.co.uk Published On :: Thu, 7 May 2020 16:58:20 +0000 The unbeaten 23-year-old prefers to let his fists do the talking Full Article Sport
ark WCSX/Detroit's Big Jim O'Brien Hosting Telethon Event For Mark Ridley's Comedy Castle By www.allaccess.com Published On :: Mon, 04 May 2020 10:09:52 -0700 BEASLEY MEDIA GROUP Classic Rock WCSX/DETROIT's BIG JIM O'BRIEN (host of BIG JIM'S HOUSE in mornings) and former WCSX morning personality KEN CALVERT are hosting a telethon to … more Full Article
ark Boston Market By wordpress.org Published On :: Mon, 02 Nov 2015 21:00:35 +0000 Boston Market, known as Boston Chicken until 1995, headquartered in Golden, Colorado, is a chain of American fast casual restaurants. Full Article WordPress.org Business CMS Food Restaurant
ark Call to Action Marketing Strategy By feedproxy.google.com Published On :: Thu, 26 Mar 2020 16:50:18 +0000 In the past I’ve written about the importance of having a separate call to action for each stage of the buyers journey. In this article I’m going to expand on that concept and outline how to identify a strategy for each of these calls to action. First I’ll summarize why you need to have a […] The post Call to Action Marketing Strategy appeared first on Psychology of Web Design | 3.7 Blog. Full Article Psychology of Design Strategy and Planning Web Design
ark Photos: Cedar Rapids Kernels offer curbside ballpark food to fans By feedproxy.google.com Published On :: Fri, 08 May 2020 15:25:40 PDT The team will be offering carry-out ballpark food to fans on Fridays with orders placed during business hours on Tuesdays and Wednesdays Full Article
ark No baseball right now, but Cedar Rapids Kernels offering a bit of the ballpark taste By feedproxy.google.com Published On :: Fri, 08 May 2020 17:40:25 PDT CEDAR RAPIDS — You weren’t taken out to the ballgame or the crowd. You couldn’t get Cracker Jack, though you could get peanuts. Not to mention hot dogs and bacon cheeseburgers, a... Full Article Minor League Sports
ark Rise Marketing Co: Why WooCommerce Is Our Go-To Solution By feedproxy.google.com Published On :: Thu, 05 Mar 2020 15:00:00 +0000 Rise, a high-end web design agency, uses WooCommerce as their go-to eCommerce solution. See how it helped them grow and why they won’t use anything else. The post Rise Marketing Co: Why WooCommerce Is Our Go-To Solution appeared first on WooCommerce. Full Article Blog
ark Food Marketing: How to Sell Online By feedproxy.google.com Published On :: Thu, 19 Mar 2020 15:00:00 +0000 Food marketing isn't about pushing a product but sharing an experience & expressing passion. But how do you stand out? What tools are needed? Find out here. The post Food Marketing: How to Sell Online appeared first on WooCommerce. Full Article Blog Marketing
ark Celebrity content marketing lessons from a pandemic By feedproxy.google.com Published On :: Wed, 06 May 2020 18:48:21 PDT When it comes to content marketing, we live in extraordinary times. With cutting-edge tools such as live video, VR and AI at our fingertips, we can give our community behind-the-scenes access to our... Full Article Business
ark Coronavirus in Iowa, live updates for May 7: Gazette awards more than $60,000 in marketing grants, FEMA awards $78 million to Iowa By feedproxy.google.com Published On :: Thu, 07 May 2020 06:59:24 PDT Gazette awards more than $60,000 in marketing grants The Gazette has awarded more than $60,000 in grants to help local businesses market themselves during the coronavirus pandemic, and there’s... Full Article Health
ark Uptown Marion Market opening with caveats By feedproxy.google.com Published On :: Thu, 07 May 2020 10:03:44 PDT MARION — While the Uptown Marion Market will continue to sell fresh produce, it will look a little different this year. The market will continue operating on the second Saturday of June, July... Full Article News
ark Scenic designer in Iowa City looks for light in the darkness By feedproxy.google.com Published On :: Thu, 07 May 2020 17:22:05 PDT Benjamin Stuben Farrar of Iowa City is a storyteller without a story to tell at the moment. The first story is as dramatic and layered as his bold scenic and lighting designs for area stages:... Full Article Arts & Culture
ark Schilling: Pro-life, pro-family, pro-free market By www.thegazette.com Published On :: Thu, 7 May 2020 09:55:48 -0400 Republican voters in the Iowa 2nd District have a pretty simple choice on June 2.On the one hand, there’s my opponent, Mariannette Miller-Meeks. She’s the establishment darling, and she’s got plenty of experience campaigning! This is now her fourth time running for Congress (She lost the first three times).The problem with Miller-Meeks is that, like too many career politicians, she will say or do anything to get elected. Miller-Meeks claims to be pro-life, but here’s what she told a 2018 League of Women Voters candidate forum:“I am pro-choice, but it’s a very sensitive issue. … Ultimately as a doctor and a health care provider, I think these are decisions that are best left to providers, to doctors, and to patients.”After that video clip surfaced, I called on Miller-Meeks to either endorse the heartbeat bill — a bill that would ban abortion after the moment a baby’s heartbeat could be detected — or drop out of the race. She has no plans to do either, but in the meantime she’s going to continue to run ads telling you how pro-life she is!Voters have another option on June 2. I’m Bobby Schilling. I’m a Catholic, pro-life, pro-family, pro-free market, former union member, Trump-supporting Republican. I own a few pizza restaurants in the Quad Cities area. And my wife, Christie, and I have — count ‘em — ten kids!I served as a member of Congress after winning my race in 2010. I know how Congress works. And I know how to stand up for conservative principles even when liberals, RINOS and fake news journalists are trying to get you to vote the wrong way. We need someone who can be tough in the face of political pressure and remain firm in their convictions. We need a fighter who is willing to work with President Donald Trump to make America great again, even if it means upsetting the establishment in Washington. Unfortunately, my opponent has shown herself to be very wishy-washy. We don’t know how she’ll vote. We just know she wants to be there. We can absolutely do better than that.I want to go to Congress to fight for America — and fight for Iowa families. That’s why I’m in this. I hope you’ll consider voting for me on June 2.Bobby Schilling is a candidate in the Republican primary for Iowa’s 2nd Congressional District. Full Article Guest Columnist
ark Celebrity content marketing lessons from a pandemic By feedproxy.google.com Published On :: Wed, 06 May 2020 18:48:21 PDT When it comes to content marketing, we live in extraordinary times. With cutting-edge tools such as live video, VR and AI at our fingertips, we can give our community behind-the-scenes access to our company, people and products. We can showcase our best customers and bring our brands to life.But what if your business had to close all of its physical locations? What if your people couldn’t go anywhere? And what if your community was distracted by ... something? Not a little something. A very big, pandemic-level something.These are the questions that content marketers find themselves grappling with in the midst of COVID-19. In the blink of an eye, we went from having the tools to do anything to a hobbling array of limitations. At least, that’s what it can feel like. But what if we flipped that thinking the other way? Twitter co-founder Biz Stone once said, “Constraints inspire creativity. When are backs are against the wall, we come up with some amazing things.” Where can we look for inspiration? If you flip the through the opening pages of that famed marketing handbook “Us Weekly” — hey, what else is there to look at in a waiting room? — you’ll find a section titled, “Stars — They’re Just Like Us!” These pages feature celebrities doing “regular people” things such as walking down the street and getting groceries. However, these days, despite their fame and means, celebrities have our same quarantined constraints. And some are using this as an opportunity to create some amazing content of their own.During this odd interlude, we can learn some valuable content marketing lessons from celebrities working within these same limitations. Create what your audience is looking forActor John Krasinski didn’t start a weekly web show in the middle of a pandemic to mug to the camera like his character Jim Halpert from “The Office.” Nor did he do it tout his Jack Ryan action-hero status. Instead, in the midst of all of the bad news, he saw that what many people were hungry for was some good news. And that’s literally what he’s delivered with his aptly titled video series, “Some Good News” or “SGN.”Featuring homemade title cards crafted by his children and set in his home office, Krasinski’s weekly show features a roundup of happy stories about creative kids, salutes to health care workers, unique ways to celebrate graduates and more. He also has concise weather reports from the likes Robert DeNiro and Brad Pitt. While special appearances from famous friends might be out of your reach, you, too, can find ways to serve up more of what your audience needs right now. Note: This might not necessarily be exactly what you sell. Ask yourself instead, what do they really need right now and how can we help? For example, Don’t Panic Management is a team of virtual assistants. However, they saw that the small businesses they serve need help applying for government relief programs, so they started creating content around this.Homemade content can be relevant, specialOn a recent episode of his WTF podcast, host Marc Maron talked about watching episodes of “Saturday Night Live At Home,” saying these shows were “touching.” With segments shot by various individual cast members at home on their laptops and phones and featuring costumes from closets and cameos from kids and pets, SNL “At Home” shows how you can push our quarantined limitations to produce creative content.In a recent episode, cast member Kate McKinnon shot an installment of her long-running “Whiskers R We” cat adoption sketch at home on her phone. Normally, this would feature several cute cats in studio introduced as McKinnon quips things like, “A cat is a smile with hair.” The “At Home” installment features McKinnon in a homemade version of her costume with hand-drawn signs and her one pet cat playing nearly a dozen cats thanks to camera filters, mustaches and face masks. SNL initially announced it would end their season early due to COVID-19. A few weeks later, the cast came back with their first “At Home” show. They recognized the power of the moment and the outsized impact homemade content can have. Another example of relevant, homemade branded content is a new ad from L’Oreal Paris, with spokeswoman Eva Longoria dying her gray roots at home in a video she shot on her iPhone. When you get hung up trying to make something polished and perfect, you often miss the opportunity to make something relevant and special. Get creative with collaboration Another SNL “At Home” sketch introduces characters struggling with the new normal of Zoom meetings shot with — wait for it — Zoom! The recent “Parks and Recreation” reunion special developed an entire half-hour script around a series of virtual meetings between Leslie Knope, Ron Swanson and others, all shot at home by the actors using iPhones. We can use the same tools we rely on for virtual meetings to collaborate with others on content. Many already use Zoom and Skype for podcasts and videos. You also can get creative in your content collaboration as actor and stunt professional Zoë Bell did. She challenged celebrity friends such as Scarlett Johansson, Margot Robbie, Drew Barrymore, Rosario Dawson and Zoe Saldana to help her stage an elaborate fight scene. The resulting video stitches together individually shot fight scenes from the phones of 38 different actors and stunt workers to create one big knockout fight. The viral video garnered over a million views in just a few short days.Just because we can’t get together doesn’t mean we can’t collaborate. Whether you’re simply using Zoom or storyboarding out something more elaborate, involving others always expands the reach of your content. Yes, the content creators profiled here are celebrities. But they’re also more than that. They’re creative artists and problem solvers. A frequent refrain in the early days of blogging and content marketing was, “think like a publisher.” This served as a reminder to write like a journalist, schedule content and publish regularly. However, with our current lockdown limitations, we should amend this as a reminder to think like creative artists — those who’ve used these limitations to spark bold, interesting new ideas for connecting with others. What can you create that people need? Can you do it right now — today? From home? Can you creatively involve others? Thinking like a creative artist means focusing less on what you can’t do in these unusual times and more on what you can.Nick Westergaard is a marketing strategist, keynote speaker and author of “Band Now” and “Get Scrappy”; nick@branddrivendigital.com; @NickWestergaard. Full Article Business
ark Coronavirus in Iowa, live updates for May 7: Gazette awards more than $60,000 in marketing grants, FEMA awards $78 million to Iowa By feedproxy.google.com Published On :: Thu, 07 May 2020 06:59:24 PDT Gazette awards more than $60,000 in marketing grantsThe Gazette has awarded more than $60,000 in grants to help local businesses market themselves during the coronavirus pandemic, and there’s more help available.“We awarded $50,000 in the first 10 days,” said Kelly Homewood, Director of Operations at The Gazette. “That tells us the need is real. The help necessary. We’re a locally owned business too, and in Iowa we lift each other up in challenging times.”The grant program, which launched April 17, awarded $50,393 to more than 60 businesses in the first 10 days. To date, almost $68,000 has been awarded to 75 businesses.“The Gazette’s Matching Program is a true testament to their commitment to our community and their small business advertisers,” said Annie Hills, marketing manager at Destinations Unlimited. “As a local small business, this program will be a huge benefit to our agency in such an unprecedented time so that we can continue to connect with our clients.”The program allocates up to $100,000 in matching advertising dollars to assist local businesses that apply. There’s still approximately $32,000 in matching grants still available to award by July 31. Businesses can apply online at www.thegazette.com/marketinggrant.FEMA awards $78 million to Iowa for COVID-19 responseThe Federal Emergency Management Agency (FEMA) has obligated $78 million to the state of Iowa to help reimburse eligible expenses for emergency protective measures that the state has incurred as a result of its response to COVID-19.The grant funds, awarded by FEMA’s Public Assistance (PA) Grant Program, were made available Thursday. FEMA has provided nearly $150 million to date in support of the state’s COVID-19 efforts.The money reimburses 75 percent of projected eligible costs associated with buying essential Personal Protective Equipment (PPE), and medical supplies and equipment during the months of May and June 2020.This obligation also includes: $19.5 million in contract services for TestIowa, $35,000 in contract services associated with overseas PPE purchases and $13.7 million for additional medical supplies and equipment for the month of April. All figures represent the 75 percent federal share. The 25 percent is paid by the grant recipient.Linn County Conservation campgrounds to open FridayIowa Gov. Kim Reynolds issued a new proclamation allowing campgrounds in the state of Iowa to open.The proclamation states:“Any public or private campground may reopen provided that the campground implements reasonable measures under the circumstances of each campground to ensure social distancing, increased hygiene practices, and other public health measures to reduce the risk of transmission of COVID-19 consistent with guidance issued by the Iowa Department of Public Health (5/6/20).”Linn County Conservation has continued to seek guidance from local and state health officials and are announcing that campgrounds will open Friday with certain restrictions and limitations. At 5 a.m. on May 8, Buffalo Creek Park, Morgan Creek Park, Pinicon Ridge Park and Squaw Creek Park campgrounds will open to campers in self-contained units. This also includes primitive (non-electric) camping areas at Matsell Bridge Natural Area (including Mount Hope) and Wakpicada Natural Area.Campers may camp only with a self-contained camping unit that has a functioning restroom, as showerhouses with flushable restrooms will remain closed. Self-contained is defined as a tent or pop-up camper with a portable toilet or an RV or camping trailer with a functioning, self-contained bathroom.Occupants are limited to six or less per camp site (unless household is more than six). No visitors are allowed. Campground showerhouses with restrooms will remain closed.Reserving campsites is not allowed as campgrounds continue to be first-come, first-served. The exception to this is Squaw Creek Park A-Loop which normally accepts online reservations at LinnCountyParks.com, starting Friday at 1 p.m.Linn County Conservation’s lodges, shelters, cabins and group camps remain closed.Hy-Vee offers two-hour express grocery pickupHy-Vee Inc., announced Friday that it is now offering a two-hour express pickup option as part of its Hy-Vee Aisles Online grocery ordering service, allowing customers to pay a fee to pick up their order faster.Customers will see a “Get It Faster” option on Aisles Online time slots where the two-hour pickup option is available. A limited number of two-hour pickup orders will be available for $9.95, from 8 a.m. until 8 p.m. daily, at all Hy-Vee store locations offering Aisles Online services.Cedar Rapids-area students honored with light display during Graduation WeekThe lights on Alliant Energy’s Cedar Rapids Tower will change colors to recognize area high schools and honor the Class of 2020.“In this time of uncertainty, it’s important to remember that brighter days are up ahead,”said Linda Mattes, Vice President of IT and Customer Operations. “Changing the lights on our tower is our way of celebrating this important milestone in the lives of these students and their families.”Each Cedar Rapids-area high school’s colors will be on display. The schedule:May 21 — Washington High School — Red and blueMay 22 — Jefferson High School — Blue and whiteMay 23 — Kennedy High School — Green and goldMay 24 — Linn-Mar High School — Red and blackMay 25 — Marion High School — Crimson and goldMay 26 — Prairie High School — Orange and blackMay 27 — Xavier High School — Navy and silverMay 28 — Metro High School — Purple and black MusicIC Festival cancels June in-person programmingWhat was planned to be the 10th annual MusicIC Festival has been canceled. Programming planned for June 18-20 will be pushed to summer 2021.The festival, presented by the Iowa City UNESCO City of Literature, will offer alternate programming. In place of the in-person performances this year, the festival will offer video performances from musicians to be highlighted in the 2021 season.Details about these video performances will be forthcoming.Grounds and grandstand entertainment canceled at 2020 Linn County FairDue to the ongoing social distancing guidelines and additional precautions taking place to help slow and reduce the spread of COVID-19, the Linn County Fair Association is canceling the grounds and grandstand entertainment for the 2020 Linn County Fair, scheduled for June 24-28.The Linn County Fair Association, in partnership with the Iowa State University Extension and Outreach of Linn County and Linn County 4-H, still plan on providing opportunities to 4-Her’s, FFA members, and youth of Linn County to showcase their talents and accomplishments at this year’s fair.Details regarding the 4-H/FFA exhibits and events are still being finalized and Linn County 4-H plans to email details to 4-H/FFA members in mid-May.Bike to Work Week Postponed Until SeptemberTo encourage safe and responsible social distancing practices during the COVID-19 pandemic, Cedar Rapids’ Bike to Work Week activities — traditionally held in May — will be postponed and are tentatively scheduled for September 21-27.This will include events such as the Mayor’s bike ride and proclamation, pit stops, group rides, and wrap-up party.Von Maur stores reopening FridayVon Maur announced it will reopen stores in Cedar Rapids, Coralville and Cedar Falls using reduced hours and safety measures starting Friday.The reduced hours will be from 11 a.m. to 7 p.m. Monday through Saturday and 12 p.m. to 6 p.m. on Sundays.Von Maur said it will be implementing daily employee health screenings, social distancing measures, contactless payments, curbside service options and sanitizing and cleaning procedures in common areas and after each customer transaction. Its aforementioned stores are at Lindale Plaza, Iowa River Landing and College Square Mall.Online Czech language lessons offeredThe National Czech & Slovak Museum & Library recently partnered with Anna Cooková, an instructor with CzechTalk, to offer online Czech language and culture lessons.Beginner’s Czech Language & Culture I begins on Thursday, June 4. Each class will be held from 8 to 9:30 p.m. every Thursday from June 4 through August 6. During the 15 hours of instruction over 10 weeks, participants will learned to read, write, and speak in Czech.The cost is $210 for NCSML members, $235 for non-members. This fee includes all course materials. The class size is limited to 20 students, so interested individuals are encouraged to register early to secure a spot.Contact Cooková for a registration form at annacookova@gmail.com or 715-651-7044. Full Article Health
ark Uptown Marion Market opening with caveats By feedproxy.google.com Published On :: Thu, 07 May 2020 10:03:44 PDT MARION — While the Uptown Marion Market will continue to sell fresh produce, it will look a little different this year.The market will continue operating on the second Saturday of June, July and August with some adjustments. But the city of Marion has canceled community events until at least early July because of the coronavirus pandemic.The Uptown market will run along Sixth Avenue instead of being held in City Square Park. It will be fenced and no more than 50 people will be let in at an time.Jill Ackerman, president of the Marion Chamber of Commerce, said there are usually between 50 and 60 vendors at each market, but she expects only 15 to 25 at this summer’s markets.“The main thing here is safety,” Ackerman said. “We want to make sure people have opportunities to buy fresh produce from our local growers, but we’re going to ask patrons to only spend 30 minutes inside the market.” Vendors will sell produce and some plants, but artisan items will not be available.While there will be summer events through the Chamber of Commerce, Ackerman said, they will be fewer and look a little different than they usually do. Free community concerts and movie nights are canceled until July by the city, according to a news release.The Marion Farmers Market, held at Taube Park, is expected to resume May 16. Officials hope to have smaller-scale events throughout the summer like performances in the Uptown Artway, Messy Art Days and the Tiny Fair series as restrictions ease.Sunrise Yoga at the Klopfenstein Amphitheater at Lowe Park is expected to take place every Saturday from June to August. “Unfortunately, given our current reality, we know that 2020 will be far from normal,” said Marion Mayor Nicolas AbouAssaly. “After careful consideration and consultation with event organizers and sponsors, we have made the collective decision to cancel the free community concerts, events and movie nights originally planned for our outdoor public venues through early-July.”Comments: (319) 368-8664; grace.king@thegazette.com Full Article News
ark Scenic designer in Iowa City looks for light in the darkness By feedproxy.google.com Published On :: Thu, 07 May 2020 17:22:05 PDT Benjamin Stuben Farrar of Iowa City is a storyteller without a story to tell at the moment.The first story is as dramatic and layered as his bold scenic and lighting designs for area stages: “Benjamin Stuben Farrar” is not his actual name. He was born Stewart Benjamin Farrar 41 years ago in Kentucky. He didn’t want to go through life as “Stewie,” so he went by “Benjamin,” until he got to college at Vanderbilt University in Nashville. He ran into so many other Bens, that his buddies decided to combine his names into “Stuben.” That name followed him to grad school at the University of Iowa in 2002, where he earned an MFA in theater design. But when he moved to New York City in 2006 to pursue his career, he didn’t like hearing “Stuben” shouted across the theater. “It sounded too much like ‘stupid,’ ” he said, “so I reverted back to Benjamin.” But nicknames have a way of sticking. When he and his wife moved back to Iowa City in 2015 to raise their daughter, he switched to “Stuben” again, since that’s how people knew him there.Professionally, he uses “S. Benjamin Farrar” and on Facebook, he goes by “Benjamin Stuben Farrar” so friends from his various circles can find him. Even though most people now call him “Stuben,” he still introduces himself as “Benjamin.” “To this day, I have 12 different names,” he said with a laugh. “Only the bill collectors know me as ‘Stewart.’”Changing realmsLike his name, his artistry knows no bounds.He has planted apple trees on Riverside Theatre’s indoor stage in Iowa City; a child’s outdoor playground on the Theatre Cedar Rapids stage; and dramatic spaces for Noche Flamenca’s dancers in New York City venues and on tour.These days, however, his theatrical world has gone dark. His recent designs for “The Humans,” “The Skin of Our Teeth” and “Kinky Boots” at Theatre Cedar Rapids and “A Doll’s House, Part 2” at Riverside Theatre have been canceled or postponed in the wake of the coronavirus pandemic. He has “The Winter’s Tale” in the works for Riverside Theatre’s free Shakespeare in the Park slated for June, but time will tell if that changes, too.“Within the course of two weeks, five productions were canceled or moved indefinitely,” he said.Looking ahead, he’s not sure what shows he’ll have time to design for the upcoming seasons. He’s used to juggling three or four productions at a time, but he said that could become really difficult if the shows fall on top of each other at the various venues.As with so many artists right now, his world keeps changing.He and his wife, Jody Caldwell, an editor and graduate of the UI Writers’ Workshop, are both freelancers, leaving them with no income during this pandemic. So Farrar has been wading through red tape and delays to secure unemployment compensation and the government stimulus check, for which he’s still waiting. One bright spot was receiving a $1,000 Iowa Arts & Culture Emergency Relief Fund grant given to 156 Iowa creatives who have lost income from canceled projects. With his regular revenue streams drying up, he’s been considering other ways to earn money through teaching theater or creating and selling more of his digital and film photography — an outgrowth of his fascination for the way lighting can sculpt a scene on stage.“I love doing nature (photography). I love doing details,” he said. “I love photographing people, too, especially on stage — I love photographing my own shows. It’s just a lot of fun. “For me, nature’s so interesting, especially living where we do in North America, there’s vast changes from one time of year to another. I just love looking at that on a very small scale, and how light happens to fall on that particular surface — how that surface changes color,” he said. “Right now the redbuds are out. The magnolias came out two weeks ago and then they started to fall. It changes the landscape dramatically, especially based on whether it’s a morning light or afternoon light or evening light, whether it’s cloudy, whether the sun’s peeking through clouds and highlighting a few individual leaves. I find that super fascinating. “That’s how I can look at the same boring tree at different times of year, at different times of day, and find something interesting to photograph.”Lighting designWhile his scenic designs create an immediate visual impact and help tell the story swirling around the actors, Farrar was a lighting designer before he became a scenic designer. It wasn’t love at first sight. He took a light design course in college, but didn’t “get” it. “It’s really difficult to wrap your head around it,” he said. His aha moment came when he was running lights for an operetta in college. “I just had these little faders in front of me so I could raise certain lights up and down. And the music was happening in front of me and I thought, ‘I control this whole little universe. I can make things completely disappear. I can sculpt things from the side, I can make things feel totally different — just like music can — just based on how it’s lit.’ And then I finally started to understand how the lighting hooked things together,” he said. From there, his interest in lighting soared.“I absolutely love lighting,” he said. “I think it’s probably given me more joy than anything else, just because I can go for a walk someplace and just the way the lighting changes as the clouds come in or out, or as the time of year changes and the angle of the sun changes, I really enjoy seeing that — and that’s what got me into photography.”Scenic designWhile his design work is a collaborative process with the director and other production team members, the ideas begin flowing as soon as he starts reading a script. With the flamenco dance company in New York, he might start working on a show two years in advance. With Theatre Cedar Rapids, the lead time is generally six months to look at the season overall, and four months to “get things going” on a particular show, he said. The lead time is about two months for Riverside Theatre shows, which have shorter rehearsal periods.He begins thinking about the theater spaces, the text that the audience never sees, the show’s technical demands, and the scale in relation to the human body. He still likes to do some of his design work by hand, but computers and the 3D printer he has in his basement workshop have made the process much quicker for creating the drawings and scale models for each show. He also enjoys the variety and challenge of moving between the small space inside Riverside Theatre and the large space inside Theatre Cedar Rapids, as well as the theaters at Grinnell College and Cornell College in Mount Vernon, as well as the theaters in New York and the touring venues that have housed his designs.Ultimately, the goal of scenic design “is always about the storytelling,” he said. “There’s a version of a show that exists in a script, if there is a script. Assuming it has a script, there is a scaffolding for that show in the script, and then there’s a version of the show in the director’s head, and then there’s a version of the show that’s performed in my head as I read the script. So there’s all these different versions.”If the show is a musical, the choreographer brings in another idea, and the musical score adds another element. Sometimes Farrar knows the music very well, but other times, he doesn’t.“Hopefully, I can integrate that well if I listen to the music while working on the show — not usually when I’m reading the script, but while I’m drafting the show. I’ll listen to the music to get a sense of how the show wants to move. “Integrating all these different versions of the show — the text, what’s in my head, what’s in the director’s head, what’s in the choreographer’s head, the role the music plays — and then you synthesize all those elements, and then you find out how the show wants to move in the space it has. And how a show moves is one of the most important things to me. ... “You get a sense that the show becomes this conscious element that wants a certain thing, and will reveal those things over time.” And time is something he has right now.Comments: (319) 368-8508; diana.nollen@thegazette.com Full Article Arts & Culture
ark Markdown Comes Alive! Part 1, Basic Editor By feedproxy.google.com Published On :: Wed, 26 Feb 2020 08:00:00 -0500 In my last post, I covered what LiveView is at a high level. In this series, we’re going to dive deeper and implement a LiveView powered Markdown editor called Frampton. This series assumes you have some familiarity with Phoenix and Elixir, including having them set up locally. Check out Elizabeth’s three-part series on getting started with Phoenix for a refresher. This series has a companion repository published on GitHub. Get started by cloning it down and switching to the starter branch. You can see the completed application on master. Our goal today is to make a Markdown editor, which allows a user to enter Markdown text on a page and see it rendered as HTML next to it in real-time. We’ll make use of LiveView for the interaction and the Earmark package for rendering Markdown. The starter branch provides some styles and installs LiveView. Rendering Markdown Let’s set aside the LiveView portion and start with our data structures and the functions that operate on them. To begin, a Post will have a body, which holds the rendered HTML string, and title. A string of markdown can be turned into HTML by calling Post.render(post, markdown). I think that just about covers it! First, let’s define our struct in lib/frampton/post.ex: defmodule Frampton.Post do defstruct body: "", title: "" def render(%__MODULE{} = post, markdown) do # Fill me in! end end Now the failing test (in test/frampton/post_test.exs): describe "render/2" do test "returns our post with the body set" do markdown = "# Hello world!" assert Post.render(%Post{}, markdown) == {:ok, %Post{body: "<h1>Hello World</h1> "}} end end Our render method will just be a wrapper around Earmark.as_html!/2 that puts the result into the body of the post. Add {:earmark, "~> 1.4.3"} to your deps in mix.exs, run mix deps.get and fill out render function: def render(%__MODULE{} = post, markdown) do html = Earmark.as_html!(markdown) {:ok, Map.put(post, :body, html)} end Our test should now pass, and we can render posts! [Note: we’re using the as_html! method, which prints error messages instead of passing them back to the user. A smarter version of this would handle any errors and show them to the user. I leave that as an exercise for the reader…] Time to play around with this in an IEx prompt (run iex -S mix in your terminal): iex(1)> alias Frampton.Post Frampton.Post iex(2)> post = %Post{} %Frampton.Post{body: "", title: ""} iex(3)> {:ok, updated_post} = Post.render(post, "# Hello world!") {:ok, %Frampton.Post{body: "<h1>Hello world!</h1> ", title: ""}} iex(4)> updated_post %Frampton.Post{body: "<h1>Hello world!</h1> ", title: ""} Great! That’s exactly what we’d expect. You can find the final code for this in the render_post branch. LiveView Editor Now for the fun part: Editing this live! First, we’ll need a route for the editor to live at: /editor sounds good to me. LiveViews can be rendered from a controller, or directly in the router. We don’t have any initial state, so let's go straight from a router. First, let's put up a minimal test. In test/frampton_web/live/editor_live_test.exs: defmodule FramptonWeb.EditorLiveTest do use FramptonWeb.ConnCase import Phoenix.LiveViewTest test "the editor renders" do conn = get(build_conn(), "/editor") assert html_response(conn, 200) =~ "data-test="editor"" end end This test doesn’t do much yet, but notice that it isn’t live view specific. Our first render is just the same as any other controller test we’d write. The page’s content is there right from the beginning, without the need to parse JavaScript or make API calls back to the server. Nice. To make that test pass, add a route to lib/frampton_web/router.ex. First, we import the LiveView code, then we render our Editor: import Phoenix.LiveView.Router # … Code skipped ... # Inside of `scope "/"`: live "/editor", EditorLive Now place a minimal EditorLive module, in lib/frampton_web/live/editor_live.ex: defmodule FramptonWeb.EditorLive do use Phoenix.LiveView def render(assigns) do ~L""" <div data-test=”editor”> <h1>Hello world!</h1> </div> """ end def mount(_params, _session, socket) do {:ok, socket} end end And we have a passing test suite! The ~L sigil designates that LiveView should track changes to the content inside. We could keep all of our markup in this render/1 method, but let’s break it out into its own template for demonstration purposes. Move the contents of render into lib/frampton_web/templates/editor/show.html.leex, and replace EditorLive.render/1 with this one liner: def render(assigns), do: FramptonWeb.EditorView.render("show.html", assigns). And finally, make an EditorView module in lib/frampton_web/views/editor_view.ex: defmodule FramptonWeb.EditorView do use FramptonWeb, :view import Phoenix.LiveView end Our test should now be passing, and we’ve got a nicely separated out template, view and “live” server. We can keep markup in the template, helper functions in the view, and reactive code on the server. Now let’s move forward to actually render some posts! Handling User Input We’ve got four tasks to accomplish before we are done: Take markdown input from the textarea Send that input to the LiveServer Turn that raw markdown into HTML Return the rendered HTML to the page. Event binding To start with, we need to annotate our textarea with an event binding. This tells the liveview.js framework to forward DOM events to the server, using our liveview channel. Open up lib/frampton_web/templates/editor/show.html.leex and annotate our textarea: <textarea phx-keyup="render_post"></textarea> This names the event (render_post) and sends it on each keyup. Let’s crack open our web inspector and look at the web socket traffic. Using Chrome, open the developer tools, navigate to the network tab and click WS. In development you’ll see two socket connections: one is Phoenix LiveReload, which polls your filesystem and reloads pages appropriately. The second one is our LiveView connection. If you let it sit for a while, you’ll see that it's emitting a “heartbeat” call. If your server is running, you’ll see that it responds with an “ok” message. This lets LiveView clients know when they've lost connection to the server and respond appropriately. Now, type some text and watch as it sends down each keystroke. However, you’ll also notice that the server responds with a “phx_error” message and wipes out our entered text. That's because our server doesn’t know how to handle the event yet and is throwing an error. Let's fix that next. Event handling We’ll catch the event in our EditorLive module. The LiveView behavior defines a handle_event/3 callback that we need to implement. Open up lib/frampton_web/live/editor_live.ex and key in a basic implementation that lets us catch events: def handle_event("render_post", params, socket) do IO.inspect(params) {:noreply, socket} end The first argument is the name we gave to our event in the template, the second is the data from that event, and finally the socket we’re currently talking through. Give it a try, typing in a few characters. Look at your running server and you should see a stream of events that look something like this: There’s our keystrokes! Next, let’s pull out that value and use it to render HTML. Rendering Markdown Lets adjust our handle_event to pattern match out the value of the textarea: def handle_event("render_post", %{"value" => raw}, socket) do Now that we’ve got the raw markdown string, turning it into HTML is easy thanks to the work we did earlier in our Post module. Fill out the body of the function like this: {:ok, post} = Post.render(%Post{}, raw) IO.inspect(post) If you type into the textarea you should see output that looks something like this: Perfect! Lastly, it’s time to send that rendered html back to the page. Returning HTML to the page In a LiveView template, we can identify bits of dynamic data that will change over time. When they change, LiveView will compare what has changed and send over a diff. In our case, the dynamic content is the post body. Open up show.html.leex again and modify it like so: <div class="rendered-output"> <%= @post.body %> </div> Refresh the page and see: Whoops! The @post variable will only be available after we put it into the socket’s assigns. Let’s initialize it with a blank post. Open editor_live.ex and modify our mount/3 function: def mount(_params, _session, socket) do post = %Post{} {:ok, assign(socket, post: post)} end In the future, we could retrieve this from some kind of storage, but for now, let's just create a new one each time the page refreshes. Finally, we need to update the Post struct with user input. Update our event handler like this: def handle_event("render_post", %{"value" => raw}, %{assigns: %{post: post}} = socket) do {:ok, post} = Post.render(post, raw) {:noreply, assign(socket, post: post) end Let's load up http://localhost:4000/editor and see it in action. Nope, that's not quite right! Phoenix won’t render this as HTML because it’s unsafe user input. We can get around this (very good and useful) security feature by wrapping our content in a raw/1 call. We don’t have a database and user processes are isolated from each other by Elixir. The worst thing a malicious user could do would be crash their own session, which doesn’t bother me one bit. Check the edit_posts branch for the final version. Conclusion That’s a good place to stop for today. We’ve accomplished a lot! We’ve got a dynamically rendering editor that takes user input, processes it and updates the page. And we haven’t written any JavaScript, which means we don’t have to maintain or update any JavaScript. Our server code is built on the rock-solid foundation of the BEAM virtual machine, giving us a great deal of confidence in its reliability and resilience. In the next post, we’ll tackle making a shared editor, allowing multiple users to edit the same post. This project will highlight Elixir’s concurrency capabilities and demonstrate how LiveView builds on them to enable some incredible user experiences. Full Article Code Back-end Engineering
ark Presence 2.0: Beaver Builder Integration, Dark Skin & More! By feedproxy.google.com Published On :: Wed, 08 Apr 2020 13:05:07 +0000 Great news for the users of Presence — our multipurpose theme. We have finally released the long-awaited 2.0 version, which features major changes and improvements. What’s new in Presence 2.0? Beaver Builder Integration Dark Skin New Demo: Organic Shop New Typography and Colors options in the Customizer New Templates in Page Builder Beaver Builder Integration If you have followed recent […] Full Article Theme Updates
ark Markdown Comes Alive! Part 1, Basic Editor By feedproxy.google.com Published On :: Wed, 26 Feb 2020 08:00:00 -0500 In my last post, I covered what LiveView is at a high level. In this series, we’re going to dive deeper and implement a LiveView powered Markdown editor called Frampton. This series assumes you have some familiarity with Phoenix and Elixir, including having them set up locally. Check out Elizabeth’s three-part series on getting started with Phoenix for a refresher. This series has a companion repository published on GitHub. Get started by cloning it down and switching to the starter branch. You can see the completed application on master. Our goal today is to make a Markdown editor, which allows a user to enter Markdown text on a page and see it rendered as HTML next to it in real-time. We’ll make use of LiveView for the interaction and the Earmark package for rendering Markdown. The starter branch provides some styles and installs LiveView. Rendering Markdown Let’s set aside the LiveView portion and start with our data structures and the functions that operate on them. To begin, a Post will have a body, which holds the rendered HTML string, and title. A string of markdown can be turned into HTML by calling Post.render(post, markdown). I think that just about covers it! First, let’s define our struct in lib/frampton/post.ex: defmodule Frampton.Post do defstruct body: "", title: "" def render(%__MODULE{} = post, markdown) do # Fill me in! end end Now the failing test (in test/frampton/post_test.exs): describe "render/2" do test "returns our post with the body set" do markdown = "# Hello world!" assert Post.render(%Post{}, markdown) == {:ok, %Post{body: "<h1>Hello World</h1> "}} end end Our render method will just be a wrapper around Earmark.as_html!/2 that puts the result into the body of the post. Add {:earmark, "~> 1.4.3"} to your deps in mix.exs, run mix deps.get and fill out render function: def render(%__MODULE{} = post, markdown) do html = Earmark.as_html!(markdown) {:ok, Map.put(post, :body, html)} end Our test should now pass, and we can render posts! [Note: we’re using the as_html! method, which prints error messages instead of passing them back to the user. A smarter version of this would handle any errors and show them to the user. I leave that as an exercise for the reader…] Time to play around with this in an IEx prompt (run iex -S mix in your terminal): iex(1)> alias Frampton.Post Frampton.Post iex(2)> post = %Post{} %Frampton.Post{body: "", title: ""} iex(3)> {:ok, updated_post} = Post.render(post, "# Hello world!") {:ok, %Frampton.Post{body: "<h1>Hello world!</h1> ", title: ""}} iex(4)> updated_post %Frampton.Post{body: "<h1>Hello world!</h1> ", title: ""} Great! That’s exactly what we’d expect. You can find the final code for this in the render_post branch. LiveView Editor Now for the fun part: Editing this live! First, we’ll need a route for the editor to live at: /editor sounds good to me. LiveViews can be rendered from a controller, or directly in the router. We don’t have any initial state, so let's go straight from a router. First, let's put up a minimal test. In test/frampton_web/live/editor_live_test.exs: defmodule FramptonWeb.EditorLiveTest do use FramptonWeb.ConnCase import Phoenix.LiveViewTest test "the editor renders" do conn = get(build_conn(), "/editor") assert html_response(conn, 200) =~ "data-test="editor"" end end This test doesn’t do much yet, but notice that it isn’t live view specific. Our first render is just the same as any other controller test we’d write. The page’s content is there right from the beginning, without the need to parse JavaScript or make API calls back to the server. Nice. To make that test pass, add a route to lib/frampton_web/router.ex. First, we import the LiveView code, then we render our Editor: import Phoenix.LiveView.Router # … Code skipped ... # Inside of `scope "/"`: live "/editor", EditorLive Now place a minimal EditorLive module, in lib/frampton_web/live/editor_live.ex: defmodule FramptonWeb.EditorLive do use Phoenix.LiveView def render(assigns) do ~L""" <div data-test=”editor”> <h1>Hello world!</h1> </div> """ end def mount(_params, _session, socket) do {:ok, socket} end end And we have a passing test suite! The ~L sigil designates that LiveView should track changes to the content inside. We could keep all of our markup in this render/1 method, but let’s break it out into its own template for demonstration purposes. Move the contents of render into lib/frampton_web/templates/editor/show.html.leex, and replace EditorLive.render/1 with this one liner: def render(assigns), do: FramptonWeb.EditorView.render("show.html", assigns). And finally, make an EditorView module in lib/frampton_web/views/editor_view.ex: defmodule FramptonWeb.EditorView do use FramptonWeb, :view import Phoenix.LiveView end Our test should now be passing, and we’ve got a nicely separated out template, view and “live” server. We can keep markup in the template, helper functions in the view, and reactive code on the server. Now let’s move forward to actually render some posts! Handling User Input We’ve got four tasks to accomplish before we are done: Take markdown input from the textarea Send that input to the LiveServer Turn that raw markdown into HTML Return the rendered HTML to the page. Event binding To start with, we need to annotate our textarea with an event binding. This tells the liveview.js framework to forward DOM events to the server, using our liveview channel. Open up lib/frampton_web/templates/editor/show.html.leex and annotate our textarea: <textarea phx-keyup="render_post"></textarea> This names the event (render_post) and sends it on each keyup. Let’s crack open our web inspector and look at the web socket traffic. Using Chrome, open the developer tools, navigate to the network tab and click WS. In development you’ll see two socket connections: one is Phoenix LiveReload, which polls your filesystem and reloads pages appropriately. The second one is our LiveView connection. If you let it sit for a while, you’ll see that it's emitting a “heartbeat” call. If your server is running, you’ll see that it responds with an “ok” message. This lets LiveView clients know when they've lost connection to the server and respond appropriately. Now, type some text and watch as it sends down each keystroke. However, you’ll also notice that the server responds with a “phx_error” message and wipes out our entered text. That's because our server doesn’t know how to handle the event yet and is throwing an error. Let's fix that next. Event handling We’ll catch the event in our EditorLive module. The LiveView behavior defines a handle_event/3 callback that we need to implement. Open up lib/frampton_web/live/editor_live.ex and key in a basic implementation that lets us catch events: def handle_event("render_post", params, socket) do IO.inspect(params) {:noreply, socket} end The first argument is the name we gave to our event in the template, the second is the data from that event, and finally the socket we’re currently talking through. Give it a try, typing in a few characters. Look at your running server and you should see a stream of events that look something like this: There’s our keystrokes! Next, let’s pull out that value and use it to render HTML. Rendering Markdown Lets adjust our handle_event to pattern match out the value of the textarea: def handle_event("render_post", %{"value" => raw}, socket) do Now that we’ve got the raw markdown string, turning it into HTML is easy thanks to the work we did earlier in our Post module. Fill out the body of the function like this: {:ok, post} = Post.render(%Post{}, raw) IO.inspect(post) If you type into the textarea you should see output that looks something like this: Perfect! Lastly, it’s time to send that rendered html back to the page. Returning HTML to the page In a LiveView template, we can identify bits of dynamic data that will change over time. When they change, LiveView will compare what has changed and send over a diff. In our case, the dynamic content is the post body. Open up show.html.leex again and modify it like so: <div class="rendered-output"> <%= @post.body %> </div> Refresh the page and see: Whoops! The @post variable will only be available after we put it into the socket’s assigns. Let’s initialize it with a blank post. Open editor_live.ex and modify our mount/3 function: def mount(_params, _session, socket) do post = %Post{} {:ok, assign(socket, post: post)} end In the future, we could retrieve this from some kind of storage, but for now, let's just create a new one each time the page refreshes. Finally, we need to update the Post struct with user input. Update our event handler like this: def handle_event("render_post", %{"value" => raw}, %{assigns: %{post: post}} = socket) do {:ok, post} = Post.render(post, raw) {:noreply, assign(socket, post: post) end Let's load up http://localhost:4000/editor and see it in action. Nope, that's not quite right! Phoenix won’t render this as HTML because it’s unsafe user input. We can get around this (very good and useful) security feature by wrapping our content in a raw/1 call. We don’t have a database and user processes are isolated from each other by Elixir. The worst thing a malicious user could do would be crash their own session, which doesn’t bother me one bit. Check the edit_posts branch for the final version. Conclusion That’s a good place to stop for today. We’ve accomplished a lot! We’ve got a dynamically rendering editor that takes user input, processes it and updates the page. And we haven’t written any JavaScript, which means we don’t have to maintain or update any JavaScript. Our server code is built on the rock-solid foundation of the BEAM virtual machine, giving us a great deal of confidence in its reliability and resilience. In the next post, we’ll tackle making a shared editor, allowing multiple users to edit the same post. This project will highlight Elixir’s concurrency capabilities and demonstrate how LiveView builds on them to enable some incredible user experiences. Full Article Code Back-end Engineering
ark Making Dark Theme Switcher With PostCSS By css-tricks.com Published On :: Thu, 07 May 2020 15:50:10 PDT https://css-tricks.com/making-dark-theme-switcher-with-postcss/ Full Article
ark Emilia Clarke to Host Virtual Dinner With Donors Who Pledge Money for Coronavirus Relief By feedproxy.google.com Published On :: Wed, 01 Apr 2020 09:54:00 EDT Today, the Game of Thrones star announced that 12 random people will get to win a virtual dinner with her. She’s asking people to donate money to her charity SameYou, which helps people heal from brain injuries and strokes. Pledges will be used to assist brain injury survivors in recuperating at home, who have been asked to leave hospitals to make room for coronavirus patients. Full Article
ark Best Email Marketing Tips to Increase Engagement & Subscribers By webdesignerwall.com Published On :: Thu, 09 Feb 2017 17:06:31 +0000 Email is your post powerful marketing channel when used well. Your visitor’s inbox is a perfect opportunity for you to capture attention, communicate important updates and invite readers back to your site for increased visibility. The stats on email marketing effectiveness say it all – top marketing specialists and service providers tell us that email […] The post Best Email Marketing Tips to Increase Engagement & Subscribers appeared first on Web Designer Wall. Full Article General Stuff markeing
ark Why Use A Digital Marketing Agency? By icanbecreative.com Published On :: Wed, 25 Mar 2020 18:38:23 PDT Outsourcing your marketing when you're running a small or medium sized business is often seen as an expensive option, one that can be done yourself. It might even be seen as something that's... Full Article Marketing
ark How Can SEO Help Market Your Designing Agency? By icanbecreative.com Published On :: Sun, 12 Apr 2020 17:28:24 PDT It's unusual, as indeed Google says that in case you've got to enlist an SEO strategy, you ought to do so early instead of late, like when you're appropriate arranging to launch a new site. Because... Full Article SEO
ark Creative Marketing Strategies For Law Firms To Engage With Potential Clients By icanbecreative.com Published On :: Sun, 26 Apr 2020 15:20:57 PDT The success of any organization strongly depends on the marketing strategies they use to reach their potential customers. Law firms are no exception since they also operate in a competitive field... Full Article Marketing
ark Markdown Comes Alive! Part 1, Basic Editor By feedproxy.google.com Published On :: Wed, 26 Feb 2020 08:00:00 -0500 In my last post, I covered what LiveView is at a high level. In this series, we’re going to dive deeper and implement a LiveView powered Markdown editor called Frampton. This series assumes you have some familiarity with Phoenix and Elixir, including having them set up locally. Check out Elizabeth’s three-part series on getting started with Phoenix for a refresher. This series has a companion repository published on GitHub. Get started by cloning it down and switching to the starter branch. You can see the completed application on master. Our goal today is to make a Markdown editor, which allows a user to enter Markdown text on a page and see it rendered as HTML next to it in real-time. We’ll make use of LiveView for the interaction and the Earmark package for rendering Markdown. The starter branch provides some styles and installs LiveView. Rendering Markdown Let’s set aside the LiveView portion and start with our data structures and the functions that operate on them. To begin, a Post will have a body, which holds the rendered HTML string, and title. A string of markdown can be turned into HTML by calling Post.render(post, markdown). I think that just about covers it! First, let’s define our struct in lib/frampton/post.ex: defmodule Frampton.Post do defstruct body: "", title: "" def render(%__MODULE{} = post, markdown) do # Fill me in! end end Now the failing test (in test/frampton/post_test.exs): describe "render/2" do test "returns our post with the body set" do markdown = "# Hello world!" assert Post.render(%Post{}, markdown) == {:ok, %Post{body: "<h1>Hello World</h1> "}} end end Our render method will just be a wrapper around Earmark.as_html!/2 that puts the result into the body of the post. Add {:earmark, "~> 1.4.3"} to your deps in mix.exs, run mix deps.get and fill out render function: def render(%__MODULE{} = post, markdown) do html = Earmark.as_html!(markdown) {:ok, Map.put(post, :body, html)} end Our test should now pass, and we can render posts! [Note: we’re using the as_html! method, which prints error messages instead of passing them back to the user. A smarter version of this would handle any errors and show them to the user. I leave that as an exercise for the reader…] Time to play around with this in an IEx prompt (run iex -S mix in your terminal): iex(1)> alias Frampton.Post Frampton.Post iex(2)> post = %Post{} %Frampton.Post{body: "", title: ""} iex(3)> {:ok, updated_post} = Post.render(post, "# Hello world!") {:ok, %Frampton.Post{body: "<h1>Hello world!</h1> ", title: ""}} iex(4)> updated_post %Frampton.Post{body: "<h1>Hello world!</h1> ", title: ""} Great! That’s exactly what we’d expect. You can find the final code for this in the render_post branch. LiveView Editor Now for the fun part: Editing this live! First, we’ll need a route for the editor to live at: /editor sounds good to me. LiveViews can be rendered from a controller, or directly in the router. We don’t have any initial state, so let's go straight from a router. First, let's put up a minimal test. In test/frampton_web/live/editor_live_test.exs: defmodule FramptonWeb.EditorLiveTest do use FramptonWeb.ConnCase import Phoenix.LiveViewTest test "the editor renders" do conn = get(build_conn(), "/editor") assert html_response(conn, 200) =~ "data-test="editor"" end end This test doesn’t do much yet, but notice that it isn’t live view specific. Our first render is just the same as any other controller test we’d write. The page’s content is there right from the beginning, without the need to parse JavaScript or make API calls back to the server. Nice. To make that test pass, add a route to lib/frampton_web/router.ex. First, we import the LiveView code, then we render our Editor: import Phoenix.LiveView.Router # … Code skipped ... # Inside of `scope "/"`: live "/editor", EditorLive Now place a minimal EditorLive module, in lib/frampton_web/live/editor_live.ex: defmodule FramptonWeb.EditorLive do use Phoenix.LiveView def render(assigns) do ~L""" <div data-test=”editor”> <h1>Hello world!</h1> </div> """ end def mount(_params, _session, socket) do {:ok, socket} end end And we have a passing test suite! The ~L sigil designates that LiveView should track changes to the content inside. We could keep all of our markup in this render/1 method, but let’s break it out into its own template for demonstration purposes. Move the contents of render into lib/frampton_web/templates/editor/show.html.leex, and replace EditorLive.render/1 with this one liner: def render(assigns), do: FramptonWeb.EditorView.render("show.html", assigns). And finally, make an EditorView module in lib/frampton_web/views/editor_view.ex: defmodule FramptonWeb.EditorView do use FramptonWeb, :view import Phoenix.LiveView end Our test should now be passing, and we’ve got a nicely separated out template, view and “live” server. We can keep markup in the template, helper functions in the view, and reactive code on the server. Now let’s move forward to actually render some posts! Handling User Input We’ve got four tasks to accomplish before we are done: Take markdown input from the textarea Send that input to the LiveServer Turn that raw markdown into HTML Return the rendered HTML to the page. Event binding To start with, we need to annotate our textarea with an event binding. This tells the liveview.js framework to forward DOM events to the server, using our liveview channel. Open up lib/frampton_web/templates/editor/show.html.leex and annotate our textarea: <textarea phx-keyup="render_post"></textarea> This names the event (render_post) and sends it on each keyup. Let’s crack open our web inspector and look at the web socket traffic. Using Chrome, open the developer tools, navigate to the network tab and click WS. In development you’ll see two socket connections: one is Phoenix LiveReload, which polls your filesystem and reloads pages appropriately. The second one is our LiveView connection. If you let it sit for a while, you’ll see that it's emitting a “heartbeat” call. If your server is running, you’ll see that it responds with an “ok” message. This lets LiveView clients know when they've lost connection to the server and respond appropriately. Now, type some text and watch as it sends down each keystroke. However, you’ll also notice that the server responds with a “phx_error” message and wipes out our entered text. That's because our server doesn’t know how to handle the event yet and is throwing an error. Let's fix that next. Event handling We’ll catch the event in our EditorLive module. The LiveView behavior defines a handle_event/3 callback that we need to implement. Open up lib/frampton_web/live/editor_live.ex and key in a basic implementation that lets us catch events: def handle_event("render_post", params, socket) do IO.inspect(params) {:noreply, socket} end The first argument is the name we gave to our event in the template, the second is the data from that event, and finally the socket we’re currently talking through. Give it a try, typing in a few characters. Look at your running server and you should see a stream of events that look something like this: There’s our keystrokes! Next, let’s pull out that value and use it to render HTML. Rendering Markdown Lets adjust our handle_event to pattern match out the value of the textarea: def handle_event("render_post", %{"value" => raw}, socket) do Now that we’ve got the raw markdown string, turning it into HTML is easy thanks to the work we did earlier in our Post module. Fill out the body of the function like this: {:ok, post} = Post.render(%Post{}, raw) IO.inspect(post) If you type into the textarea you should see output that looks something like this: Perfect! Lastly, it’s time to send that rendered html back to the page. Returning HTML to the page In a LiveView template, we can identify bits of dynamic data that will change over time. When they change, LiveView will compare what has changed and send over a diff. In our case, the dynamic content is the post body. Open up show.html.leex again and modify it like so: <div class="rendered-output"> <%= @post.body %> </div> Refresh the page and see: Whoops! The @post variable will only be available after we put it into the socket’s assigns. Let’s initialize it with a blank post. Open editor_live.ex and modify our mount/3 function: def mount(_params, _session, socket) do post = %Post{} {:ok, assign(socket, post: post)} end In the future, we could retrieve this from some kind of storage, but for now, let's just create a new one each time the page refreshes. Finally, we need to update the Post struct with user input. Update our event handler like this: def handle_event("render_post", %{"value" => raw}, %{assigns: %{post: post}} = socket) do {:ok, post} = Post.render(post, raw) {:noreply, assign(socket, post: post) end Let's load up http://localhost:4000/editor and see it in action. Nope, that's not quite right! Phoenix won’t render this as HTML because it’s unsafe user input. We can get around this (very good and useful) security feature by wrapping our content in a raw/1 call. We don’t have a database and user processes are isolated from each other by Elixir. The worst thing a malicious user could do would be crash their own session, which doesn’t bother me one bit. Check the edit_posts branch for the final version. Conclusion That’s a good place to stop for today. We’ve accomplished a lot! We’ve got a dynamically rendering editor that takes user input, processes it and updates the page. And we haven’t written any JavaScript, which means we don’t have to maintain or update any JavaScript. Our server code is built on the rock-solid foundation of the BEAM virtual machine, giving us a great deal of confidence in its reliability and resilience. In the next post, we’ll tackle making a shared editor, allowing multiple users to edit the same post. This project will highlight Elixir’s concurrency capabilities and demonstrate how LiveView builds on them to enable some incredible user experiences. Full Article Code Back-end Engineering
ark "I always hated that word—marketing—and I hate it now. Because for me, and this may sound simplistic,..." By feedproxy.google.com Published On :: Sat, 08 Oct 2011 20:20:00 -0700 ““I always hated that word—marketing—and I hate it now. Because for me, and this may sound simplistic, the key to marketing is to make something people want. When they want it, they buy it. When they buy it, you have sales. So the product has to speak. The product is what markets things.”” - Interview with Tom Ford. Full Article tom ford
ark 14 Visual Content Marketing Statistics to Know for 2019 By feedproxy.google.com Published On :: Thu, 03 Oct 2019 21:54:22 +0000 Online marketing with visual content continues to grow and drive tons of traffic. The team at Venngage gathered together the latest data in the 14 Visual Content Marketing Statistics to Know for 2019 infographic and built it using their own tool.From Nadya Khoja at Venngage:Two years ago I asked 300 different online marketers to help me figure out how they were using visual content as part of their marketing strategies in 2016 and their predictions for 2017.This year I wanted to see if there were any changes in how marketers were creating visuals, and what kind of content engagement they were seeing.I also asked a couple of additional questions to see how the use of various visual formats impacted their blogging strategies.Conclusion:The data says it all–visual content isn’t going anywhere any time soon. Not only are more brands leveraging the use for of visuals for various social media platforms, but there is a lot of added benefit when it comes to SEO and organic rankings as well, particularly in Google’s image search results.And of course, creating engaging visual content is a surefire way to resonate with your audience and communicate your ideas more effectively.There are a few things to unravel here:It’s good survey data, but take it with a grain of salt. Venngage is a visual design tool, sharing data about visual content marketing.The infographic is a fantastic format to summarize the survey results and use in social media to draw in readers to the full article.The infographic is built using Venngage, so it’s also a great way to showcase what their design tool is capable of. In fact, clicking on the infographic gives you the opportunity to use this design as a template for designing your own infographic.Sections 5 & 10 are disappointing visually. There are no data visualizations, just a bunch of percentage values shown in text.I’m not a fan of the bright color scheme, and it’s visually distracting from highlighting insights in the data.The article still references 2018 data, even though the infographic has been updated with newer data from 2019. Full Article
ark Call to Action Marketing Strategy By feedproxy.google.com Published On :: Thu, 26 Mar 2020 16:50:18 +0000 In the past I’ve written about the importance of having a separate call to action for each stage of the buyers journey. In this article I’m going to expand on that concept and outline how to identify a strategy for each of these calls to action. First I’ll summarize why you need to have a […] The post Call to Action Marketing Strategy appeared first on Psychology of Web Design | 3.7 Blog. Full Article Psychology of Design Strategy and Planning Web Design
ark Article: 25 Beautifully Dark-Schemed Landing Pages for Inspiration By feedproxy.google.com Published On :: Tue, 05 May 2020 14:58:36 +0000 There is something instantly remarkable about a website with a strong, dark color scheme. Full Article Articles Round-Ups Blue Color Dark Color Scheme Dark Mode
ark Electric Cars and Surging Solar Spell Market Doom for Fossil Fuels By feedproxy.google.com Published On :: Thu, 26 Oct 2017 21:08:30 +0000 By Jessica Corbett Common Dreams Analyses show how demand for electric vehicles and rapidly falling renewable energy prices could take down oil and gas industry As an increasing number of nations make plans for banning gas and diesel vehicles within … Continue reading → Full Article Business & Economy
ark McDonald's Workers in Denmark Pity Us By feeds.drudge.com Published On :: Fri, 08 May 2020 17:29:20 -0400 Nicholas Kristof: Before the coronavirus pandemic, I crept behind [expletive] Danish lines to explore: How scary is Denmark? How horrifying would it be if the United States took a step or two in the direction of Denmark? Would America lose its edge, productivity and innovation, or would it gain well-being, fairness and happiness? Full Article news
ark Mysterious Sharks Dance Away Bethel's COVID-19 Blues By feeds.drudge.com Published On :: Fri, 08 May 2020 22:31:46 -0400 A couple of mysterious sharks have caught the fancy of the town. Maybe it's the cabin fever finally setting in, or perhaps this is what happens when you go too long without washing your mask, but Bethelites are going wild for two people in inflatable shark suits who pop up randomly around town. Full Article news
ark Hope in a Sea of Endless Calamity with Mark Manson By feedproxy.google.com Published On :: Wed, 06 May 2020 13:05:54 +0000 Today on the show, I’m chatting with New York Times bestselling author Mark Manson. He is the #1 New York Times Bestselling author of Everything is F*cked and The Subtle Art of Not Giving a F*ck, the mega-bestseller that reached #1 in fourteen different countries. Mark also runs one of the largest personal growth websites in the world, MarkManson.net, a blog with more than two million monthly readers and half a million subscribers, making him one of the largest and most successful independent publishers in the world. In this episode, we take a deep dive into the creative process. How to spend your time when you’re trying get comfortable with being uncomfortable. Mark helps bring into focus the up-side that this moment has created for us while also sharing some of the tactics he while quarantined. Enjoy! FOLLOW MARK: instagram | twitter | website Listen to the Podcast Subscribe This podcast is brought to you by CreativeLive. CreativeLive is the world’s largest hub for online creative education in photo/video, art/design, music/audio, craft/maker, money/life and the ability to make a living in any of those disciplines. They are high quality, highly curated classes taught by the world’s top experts — Pulitzer, Oscar, […] The post Hope in a Sea of Endless Calamity with Mark Manson appeared first on Chase Jarvis Photography. Full Article chasejarvisLIVE Podcast anxiety fear happiness personal development self confidence self help
ark Markdown Comes Alive! Part 1, Basic Editor By feedproxy.google.com Published On :: Wed, 26 Feb 2020 08:00:00 -0500 In my last post, I covered what LiveView is at a high level. In this series, we’re going to dive deeper and implement a LiveView powered Markdown editor called Frampton. This series assumes you have some familiarity with Phoenix and Elixir, including having them set up locally. Check out Elizabeth’s three-part series on getting started with Phoenix for a refresher. This series has a companion repository published on GitHub. Get started by cloning it down and switching to the starter branch. You can see the completed application on master. Our goal today is to make a Markdown editor, which allows a user to enter Markdown text on a page and see it rendered as HTML next to it in real-time. We’ll make use of LiveView for the interaction and the Earmark package for rendering Markdown. The starter branch provides some styles and installs LiveView. Rendering Markdown Let’s set aside the LiveView portion and start with our data structures and the functions that operate on them. To begin, a Post will have a body, which holds the rendered HTML string, and title. A string of markdown can be turned into HTML by calling Post.render(post, markdown). I think that just about covers it! First, let’s define our struct in lib/frampton/post.ex: defmodule Frampton.Post do defstruct body: "", title: "" def render(%__MODULE{} = post, markdown) do # Fill me in! end end Now the failing test (in test/frampton/post_test.exs): describe "render/2" do test "returns our post with the body set" do markdown = "# Hello world!" assert Post.render(%Post{}, markdown) == {:ok, %Post{body: "<h1>Hello World</h1> "}} end end Our render method will just be a wrapper around Earmark.as_html!/2 that puts the result into the body of the post. Add {:earmark, "~> 1.4.3"} to your deps in mix.exs, run mix deps.get and fill out render function: def render(%__MODULE{} = post, markdown) do html = Earmark.as_html!(markdown) {:ok, Map.put(post, :body, html)} end Our test should now pass, and we can render posts! [Note: we’re using the as_html! method, which prints error messages instead of passing them back to the user. A smarter version of this would handle any errors and show them to the user. I leave that as an exercise for the reader…] Time to play around with this in an IEx prompt (run iex -S mix in your terminal): iex(1)> alias Frampton.Post Frampton.Post iex(2)> post = %Post{} %Frampton.Post{body: "", title: ""} iex(3)> {:ok, updated_post} = Post.render(post, "# Hello world!") {:ok, %Frampton.Post{body: "<h1>Hello world!</h1> ", title: ""}} iex(4)> updated_post %Frampton.Post{body: "<h1>Hello world!</h1> ", title: ""} Great! That’s exactly what we’d expect. You can find the final code for this in the render_post branch. LiveView Editor Now for the fun part: Editing this live! First, we’ll need a route for the editor to live at: /editor sounds good to me. LiveViews can be rendered from a controller, or directly in the router. We don’t have any initial state, so let's go straight from a router. First, let's put up a minimal test. In test/frampton_web/live/editor_live_test.exs: defmodule FramptonWeb.EditorLiveTest do use FramptonWeb.ConnCase import Phoenix.LiveViewTest test "the editor renders" do conn = get(build_conn(), "/editor") assert html_response(conn, 200) =~ "data-test="editor"" end end This test doesn’t do much yet, but notice that it isn’t live view specific. Our first render is just the same as any other controller test we’d write. The page’s content is there right from the beginning, without the need to parse JavaScript or make API calls back to the server. Nice. To make that test pass, add a route to lib/frampton_web/router.ex. First, we import the LiveView code, then we render our Editor: import Phoenix.LiveView.Router # … Code skipped ... # Inside of `scope "/"`: live "/editor", EditorLive Now place a minimal EditorLive module, in lib/frampton_web/live/editor_live.ex: defmodule FramptonWeb.EditorLive do use Phoenix.LiveView def render(assigns) do ~L""" <div data-test=”editor”> <h1>Hello world!</h1> </div> """ end def mount(_params, _session, socket) do {:ok, socket} end end And we have a passing test suite! The ~L sigil designates that LiveView should track changes to the content inside. We could keep all of our markup in this render/1 method, but let’s break it out into its own template for demonstration purposes. Move the contents of render into lib/frampton_web/templates/editor/show.html.leex, and replace EditorLive.render/1 with this one liner: def render(assigns), do: FramptonWeb.EditorView.render("show.html", assigns). And finally, make an EditorView module in lib/frampton_web/views/editor_view.ex: defmodule FramptonWeb.EditorView do use FramptonWeb, :view import Phoenix.LiveView end Our test should now be passing, and we’ve got a nicely separated out template, view and “live” server. We can keep markup in the template, helper functions in the view, and reactive code on the server. Now let’s move forward to actually render some posts! Handling User Input We’ve got four tasks to accomplish before we are done: Take markdown input from the textarea Send that input to the LiveServer Turn that raw markdown into HTML Return the rendered HTML to the page. Event binding To start with, we need to annotate our textarea with an event binding. This tells the liveview.js framework to forward DOM events to the server, using our liveview channel. Open up lib/frampton_web/templates/editor/show.html.leex and annotate our textarea: <textarea phx-keyup="render_post"></textarea> This names the event (render_post) and sends it on each keyup. Let’s crack open our web inspector and look at the web socket traffic. Using Chrome, open the developer tools, navigate to the network tab and click WS. In development you’ll see two socket connections: one is Phoenix LiveReload, which polls your filesystem and reloads pages appropriately. The second one is our LiveView connection. If you let it sit for a while, you’ll see that it's emitting a “heartbeat” call. If your server is running, you’ll see that it responds with an “ok” message. This lets LiveView clients know when they've lost connection to the server and respond appropriately. Now, type some text and watch as it sends down each keystroke. However, you’ll also notice that the server responds with a “phx_error” message and wipes out our entered text. That's because our server doesn’t know how to handle the event yet and is throwing an error. Let's fix that next. Event handling We’ll catch the event in our EditorLive module. The LiveView behavior defines a handle_event/3 callback that we need to implement. Open up lib/frampton_web/live/editor_live.ex and key in a basic implementation that lets us catch events: def handle_event("render_post", params, socket) do IO.inspect(params) {:noreply, socket} end The first argument is the name we gave to our event in the template, the second is the data from that event, and finally the socket we’re currently talking through. Give it a try, typing in a few characters. Look at your running server and you should see a stream of events that look something like this: There’s our keystrokes! Next, let’s pull out that value and use it to render HTML. Rendering Markdown Lets adjust our handle_event to pattern match out the value of the textarea: def handle_event("render_post", %{"value" => raw}, socket) do Now that we’ve got the raw markdown string, turning it into HTML is easy thanks to the work we did earlier in our Post module. Fill out the body of the function like this: {:ok, post} = Post.render(%Post{}, raw) IO.inspect(post) If you type into the textarea you should see output that looks something like this: Perfect! Lastly, it’s time to send that rendered html back to the page. Returning HTML to the page In a LiveView template, we can identify bits of dynamic data that will change over time. When they change, LiveView will compare what has changed and send over a diff. In our case, the dynamic content is the post body. Open up show.html.leex again and modify it like so: <div class="rendered-output"> <%= @post.body %> </div> Refresh the page and see: Whoops! The @post variable will only be available after we put it into the socket’s assigns. Let’s initialize it with a blank post. Open editor_live.ex and modify our mount/3 function: def mount(_params, _session, socket) do post = %Post{} {:ok, assign(socket, post: post)} end In the future, we could retrieve this from some kind of storage, but for now, let's just create a new one each time the page refreshes. Finally, we need to update the Post struct with user input. Update our event handler like this: def handle_event("render_post", %{"value" => raw}, %{assigns: %{post: post}} = socket) do {:ok, post} = Post.render(post, raw) {:noreply, assign(socket, post: post) end Let's load up http://localhost:4000/editor and see it in action. Nope, that's not quite right! Phoenix won’t render this as HTML because it’s unsafe user input. We can get around this (very good and useful) security feature by wrapping our content in a raw/1 call. We don’t have a database and user processes are isolated from each other by Elixir. The worst thing a malicious user could do would be crash their own session, which doesn’t bother me one bit. Check the edit_posts branch for the final version. Conclusion That’s a good place to stop for today. We’ve accomplished a lot! We’ve got a dynamically rendering editor that takes user input, processes it and updates the page. And we haven’t written any JavaScript, which means we don’t have to maintain or update any JavaScript. Our server code is built on the rock-solid foundation of the BEAM virtual machine, giving us a great deal of confidence in its reliability and resilience. In the next post, we’ll tackle making a shared editor, allowing multiple users to edit the same post. This project will highlight Elixir’s concurrency capabilities and demonstrate how LiveView builds on them to enable some incredible user experiences. Full Article Code Back-end Engineering
ark Wix Video — a great marketing tool for any website. By feedproxy.google.com Published On :: Wed, 17 Jan 2018 19:40:09 +0000 Increases time on page and boosts engagement with your site Thanks to the ever-increasing internet speeds, videos are in high demand. Right now, video is everywhere on social media, websites, and apps. We are watching them on all our screens, desktops, tablets, phones and smart TVs. It is expected a growth in video content up … Wix Video — a great marketing tool for any website. Read More » Full Article Reference
ark Implementing Dark Mode In React Apps Using styled-components By feedproxy.google.com Published On :: Tue, 28 Apr 2020 10:30:00 +0000 One of the most commonly requested software features is dark mode (or night mode, as others call it). We see dark mode in the apps that we use every day. From mobile to web apps, dark mode has become vital for companies that want to take care of their users’ eyes. Dark mode is a supplemental feature that displays mostly dark surfaces in the UI. Most major companies (such as YouTube, Twitter, and Netflix) have adopted dark mode in their mobile and web apps. Full Article
ark Godox’s new SL150/SL200 Mark II LED lights offer fanless “silent mode” operation By feedproxy.google.com Published On :: Sat, 09 May 2020 11:14:24 +0000 The Godox SL series LED lights have proven to be extremely popular due to their low cost. Two of the models in that range, the SL150 and SL200 have seen a Mark II update today, according to an email that Godox has been sending out today. One of the features of the new SL150II and […] The post Godox’s new SL150/SL200 Mark II LED lights offer fanless “silent mode” operation appeared first on DIY Photography. Full Article news Gear Announcement godox LED lights SL150II SL200II
ark On the Asymptotic $u_0$-Expected Flooding Time of Stationary Edge-Markovian Graphs. (arXiv:2004.03660v4 [math.PR] UPDATED) By arxiv.org Published On :: Consider that $u_0$ nodes are aware of some piece of data $d_0$. This note derives the expected time required for the data $d_0$ to be disseminated through-out a network of $n$ nodes, when communication between nodes evolves according to a graphical Markov model $overline{ mathcal{G}}_{n,hat{p}}$ with probability parameter $hat{p}$. In this model, an edge between two nodes exists at discrete time $k in mathbb{N}^+$ with probability $hat{p}$ if this edge existed at $k-1$, and with probability $(1-hat{p})$ if this edge did not exist at $k-1$. Each edge is interpreted as a bidirectional communication link over which data between neighbors is shared. The initial communication graph is assumed to be an Erdos-Renyi random graph with parameters $(n,hat{p})$, hence we consider a emph{stationary} Markov model $overline{mathcal{G}}_{n,hat{p}}$. The asymptotic "$u_0$-expected flooding time" of $overline{mathcal{G}}_{n,hat{p}}$ is defined as the expected number of iterations required to transmit the data $d_0$ from $u_0$ nodes to $n$ nodes, in the limit as $n$ approaches infinity. Although most previous results on the asymptotic flooding time in graphical Markov models are either emph{almost sure} or emph{with high probability}, the bounds obtained here are emph{in expectation}. However, our bounds are tighter and can be more complete than previous results. Full Article
ark EMSx: A Numerical Benchmark for Energy Management Systems. (arXiv:2001.00450v2 [math.OC] UPDATED) By arxiv.org Published On :: Inserting renewable energy in the electric grid in a decentralized manneris a key challenge of the energy transition. However, at local scale, both production and demand display erratic behavior, which makes it delicate to match them. It is the goal of Energy Management Systems (EMS) to achieve such balance at least cost. We present EMSx, a numerical benchmark for testing control algorithms for the management of electric microgrids equipped with a photovoltaic unit and an energy storage system. EMSx is made of three key components: the EMSx dataset, provided by Schneider Electric, contains a diverse pool of realistic microgrids with a rich collection of historical observations and forecasts; the EMSx mathematical framework is an explicit description of the assessment of electric microgrid control techniques and algorithms; the EMSx software EMSx.jl is a package, implemented in the Julia language, which enables to easily implement a microgrid controller and to test it. All components of the benchmark are publicly available, so that other researchers willing to test controllers on EMSx may reproduce experiments easily. Eventually, we showcase the results of standard microgrid control methods, including Model Predictive Control, Open Loop Feedback Control and Stochastic Dynamic Programming. Full Article
ark A remark on the Laplacian flow and the modified Laplacian co-flow in G2-Geometry. (arXiv:2005.03332v1 [math.DG]) By arxiv.org Published On :: We observe that the DeTurck Laplacian flow of G2-structures introduced by Bryant and Xu as a gauge fixing of the Laplacian flow can be regarded as a flow of G2-structures (not necessarily closed) which fits in the general framework introduced by Hamilton in [4]. Full Article
ark On analog quantum algorithms for the mixing of Markov chains. (arXiv:1904.11895v2 [quant-ph] UPDATED) By arxiv.org Published On :: The problem of sampling from the stationary distribution of a Markov chain finds widespread applications in a variety of fields. The time required for a Markov chain to converge to its stationary distribution is known as the classical mixing time. In this article, we deal with analog quantum algorithms for mixing. First, we provide an analog quantum algorithm that given a Markov chain, allows us to sample from its stationary distribution in a time that scales as the sum of the square root of the classical mixing time and the square root of the classical hitting time. Our algorithm makes use of the framework of interpolated quantum walks and relies on Hamiltonian evolution in conjunction with von Neumann measurements. There also exists a different notion for quantum mixing: the problem of sampling from the limiting distribution of quantum walks, defined in a time-averaged sense. In this scenario, the quantum mixing time is defined as the time required to sample from a distribution that is close to this limiting distribution. Recently we provided an upper bound on the quantum mixing time for Erd"os-Renyi random graphs [Phys. Rev. Lett. 124, 050501 (2020)]. Here, we also extend and expand upon our findings therein. Namely, we provide an intuitive understanding of the state-of-the-art random matrix theory tools used to derive our results. In particular, for our analysis we require information about macroscopic, mesoscopic and microscopic statistics of eigenvalues of random matrices which we highlight here. Furthermore, we provide numerical simulations that corroborate our analytical findings and extend this notion of mixing from simple graphs to any ergodic, reversible, Markov chain. Full Article
ark The Zhou Ordinal of Labelled Markov Processes over Separable Spaces. (arXiv:2005.03630v1 [cs.LO]) By arxiv.org Published On :: There exist two notions of equivalence of behavior between states of a Labelled Markov Process (LMP): state bisimilarity and event bisimilarity. The first one can be considered as an appropriate generalization to continuous spaces of Larsen and Skou's probabilistic bisimilarity, while the second one is characterized by a natural logic. C. Zhou expressed state bisimilarity as the greatest fixed point of an operator $mathcal{O}$, and thus introduced an ordinal measure of the discrepancy between it and event bisimilarity. We call this ordinal the "Zhou ordinal" of $mathbb{S}$, $mathfrak{Z}(mathbb{S})$. When $mathfrak{Z}(mathbb{S})=0$, $mathbb{S}$ satisfies the Hennessy-Milner property. The second author proved the existence of an LMP $mathbb{S}$ with $mathfrak{Z}(mathbb{S}) geq 1$ and Zhou showed that there are LMPs having an infinite Zhou ordinal. In this paper we show that there are LMPs $mathbb{S}$ over separable metrizable spaces having arbitrary large countable $mathfrak{Z}(mathbb{S})$ and that it is consistent with the axioms of $mathit{ZFC}$ that there is such a process with an uncountable Zhou ordinal. Full Article