ba The Gazette’s 2020 preseason Super 10 softball rankings By feedproxy.google.com Published On :: Sun, 03 May 2020 12:32:19 PDT The Iowa high school softball season was supposed to start practice Monday. Instead, the coronavirus pandemic has everything delayed until June 1, or maybe longer. Or, perhaps, canceled. But since... Full Article Prep Softball
ba Best sports movies: Just as baseball is America, 'Field of Dreams' has become Iowa By feedproxy.google.com Published On :: Mon, 04 May 2020 08:38:42 PDT Editor's note: The Gazette sports staff has compiled lists of its top 15 favorite sports movies. Each day, a different staffer will share some insight into one of their favorites. Some of them are... Full Article Sports
ba Podcast: Michael Jordan, the NBA and ‘The Last Dance’ from 2 different perspectives By feedproxy.google.com Published On :: Mon, 04 May 2020 09:12:01 PDT “The Last Dance,” the Michael Jordan documentary on ESPN every Sunday night for five weeks got me thinking I’d like to talk about this. You can listen to Jordan talk and “The... Full Article Hlastradamus Odds Podcast
ba Ankeny wide receiver Brody Brecht picks Iowa football and baseball By feedproxy.google.com Published On :: Tue, 05 May 2020 14:15:34 PDT Once in a while, a college football prospect with potential in another sport ends up with the Hawkeyes. Brody Brecht might be the next one of those for the Hawkeyes. The 6-4, 200-pound wide... Full Article Iowa Football
ba Iowa football lands Nebraska wide receiver Keagan Johnson By feedproxy.google.com Published On :: Thu, 07 May 2020 10:44:27 PDT For Keagan Johnson and his family, the decision to play football at the University of Iowa was theirs. A personal decision that set a course for a fairly massive three or four or five years. When... Full Article Iowa Football
ba After 1 season, Matt Lesan resigns as Solon boys’ basketball coach By feedproxy.google.com Published On :: Thu, 07 May 2020 13:03:52 PDT CEDAR RAPIDS — This was his alma mater, a place he had a ton of success at as a player. The future of the program is clearly bright. But Matt Lesan has a clear plan for his own future, which... Full Article Prep Basketball
ba Iowa’s Gary Barta says college football could be on a ‘dimmer switch’ when it returns By feedproxy.google.com Published On :: Thu, 07 May 2020 16:36:14 PDT Iowa athletics director Gary Barta began Thursday’s meeting of the UI’s presidential committee on athletics with two numbers: It’s been 56 days since the coronavirus pandemic shut... Full Article Iowa Football
ba Best sports movies: It’s OK to say it — ‘The Bad News Bears’ rules By feedproxy.google.com Published On :: Fri, 08 May 2020 07:42:35 PDT Editor’s note: The Gazette sports staff has compiled lists of its top 15 favorite sports movies. Each day, a different staffer will share some insight into one of their favorites. Some of them... Full Article Sports
ba Best sports movies: College football managed to survive ‘Horse Feathers’ takedown By feedproxy.google.com Published On :: Fri, 08 May 2020 10:27:11 PDT Editor’s note: The Gazette sports staff has compiled lists of its top 15 favorite sports movies. Each day, a different staffer will share some insight into one of their favorites. Some of them... Full Article Sports
ba 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
ba 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
ba Bowen Born itching to start basketball career at UNI By feedproxy.google.com Published On :: Sat, 09 May 2020 06:11:25 PDT CEDAR FALLS — Like many high school seniors across the country, Norwalk’s Bowen Born is unsure when he’ll be able to get on campus at the University of Northern Iowa and begin... Full Article UNI Panthers
ba Best sports movies: 'Brian's Song' is about more than football — it's about friendship By feedproxy.google.com Published On :: Sat, 09 May 2020 06:06:37 PDT Editor’s note: The Gazette sports staff has compiled lists of its top 15 favorite sports movies. Each day, a different staffer will share some insight into one of their favorites. Some of them... Full Article Sports
ba 18-year-old charged in fatal shooting arrested for drunken driving while out on bail By feedproxy.google.com Published On :: Wed, 06 May 2020 18:38:28 PDT CEDAR RAPIDS — A 17-year-old, charged in January with fatally shooting an 18-year-old during a drug robbery, was released in March only to be arrested about a month later for drunken driving.... Full Article Public Safety
ba Chew on This: Five places to get carryout barbecue By feedproxy.google.com Published On :: Wed, 06 May 2020 18:29:23 PDT In normal times, Chew on This focuses on restaurant openings and closings. These are not normal times, with restaurants closed except to carryout, curbside and delivery. We know these businesses... Full Article Food & Drink
ba Why universal basic health care is both a moral and economic imperative By feedproxy.google.com Published On :: Thu, 07 May 2020 07:03:33 PDT Several hundred cars were parked outside a food bank in San Antonio on Good Friday — the food bank fed 10,000 people that day. Such scenes, increasingly common across the nation and evocative... Full Article Guest Columnist
ba Collaboration creates Camp-in-a-Bag kits for mentoring program By feedproxy.google.com Published On :: Thu, 07 May 2020 09:59:31 PDT “I pledge my Head to clearer thinking, my Heart to greater loyalty, my Hands to larger service, and my Health to better living, for my club, my community, my country, and my world.”... Full Article Community
ba Iowa is going back to work, but who will watch the children? By feedproxy.google.com Published On :: Thu, 07 May 2020 11:25:34 PDT As death rates from COVID-19 rise, the state is beginning to open back up. And with that the expectation is that Iowans get back to work. Iowans who don’t go back to work will lose... Full Article Staff Editorial
ba C.R. workplace shooting suspect turns self in after father drives him to Alabama police station By feedproxy.google.com Published On :: Fri, 08 May 2020 17:05:43 PDT A man suspected of a workplace shooting last month at a vinyl window manufacturer in southwest Cedar Rapids turned himself into authorities Friday. Jamal Devonte Edwards, 26, has been wanted since... Full Article Public Safety
ba Joel Cronbaugh By feedproxy.google.com Published On :: Wed, 06 May 2020 20:23:32 PDT JOEL CRONBAUGHNorwayJoel Cronbaugh, whose brother David referred to him as the purest, most innocent soul he ever knew, transitioned to his Heavenley home peacefully on May 5, 2020. A person of few words but many, many stories, Joel was a man of action who distinguished himself in many ways during his long, fore-filled life. Mostly we will all remember him for his selfless kindness, goofy sense of humor and many years of taking his fellow truck driver friends, his family of nieces and nephews and all his devoted friends to The Brick Haus in Amana for weekly and often twice a week "Cowboy" lunches. A graduate of McKinley High in Cedar Rapids, Iowa, as his younger brothers David and Steve shoved each other down the laundry chute, Joel was making his name as a car engine genius. As a member of the famous Cedar Rapids motor club, The Rod Benders, Joel was the go-to guy for making a car engine "scream." This passion for anything with a motor and wheels resulted in him becoming an avid, lifelong collector of bicycles, motocross bikes and cars. Joel drove in motocross well into his 70s, putting much younger competitors to shame.When his niece and nephew Tara and Todd were young, Joel and his brother David helped them construct national class caliber Soap Box Derby Cars. Tara's car actually finished second in the All-American Championship. During this period, Joel became a friend and mentor to Todd's buddy James Burns, also a Derby Car driver. Both Todd and James took Joel's endless hours of meticulous lessons and teaching and went on to pursue master's degrees in engineering and law at Ivy League schools. Their love and friendship lasted throughout Joel's life. Joel, the man who never told a dirty joke or even used a naughty word, went on to make the long drive to New York City to stand up in James's wedding and proceeded to drive back to Iowa with a $500 parking ticket for parking in Times Square that he "refused" to pay. (The conservative Iowa guy had no idea how to park in NYC.)Joel cut his mechanical teeth helping his father Melvin W (W for work, he always joked), at Tubb's Transport Service on old Highway 30. Initially helping with car and transport servicing, Joel prided himself on being the electrical wizard at the once-largest truck stop in Iowa. Drivers would scratch their heads as the tall, scrawny kid would solve elusive electrical problems in minutes. Joel's natural ability to troubleshoot or fabricate anything electronic inspired him to follow in his father, Melvin's, footsteps as a longtime businessman in Cedar Rapids. After operating Cronbaugh Transport during the early 1980s, Joel made his mark in the trucking and tank wash industry. Cronbaugh Tank Wash offered interior tank washes for liquid product transport tankers. Joel once again used his diligent, meticulous skill to design one of his own mechanical spinner washers, a washing technique still used today. His scrupulous cleaning process set the gold standard in the liquid tank washing industry. Joel retired from his love of the trucking industry in 1997, when he sold the business to Kevin Smith, an employee at the time but later grew into a devoted, trusted friend. The family would like to extend appreciation to Kevin for all his support during Joel's illness. Joel spent his retirement years mentoring his niece Tara, as she continued the family trait of business ownership. Until 2017, alongside his brother David, Joel pursued his love to fabricate, troubleshoot and fix anything at The Java House, Tara's company in Iowa City. When Joel was not fixing odds and ends around his farmstead in Norway, he was tinkering on his pride and joy, Ducati motocross bikes, collecting bicycles to rebuild and later donate, or attending Sunday church service, a life-time member at Calvary Baptist Church in Cedar Rapids. He got a kick out of retelling jokes, reciting Bible verses to those he loved (Romans 8:28 was his favorite) and doing favors for people he cared about most. He wore a denim jean shirt every day, carried a tire pressure gauge in his shirt pocket and handed out hundreds of mini-LED flashlights to each of his friends. A man of simple pleasures, he loved hamburgers at The Hamburg Inn and his weekly visits for Beef & Noodles at Maid-Rite in Cedar Rapids, where he would take his Maid-Rite lunch to his longtime high school friend, Evelynn Strait, each week for many years. The family would like to extend deep appreciation to Evelynn for her loving, unconditional and daily support, and friendship to Joel.Joel Richard was born Feb. 28, 1935, to Katherine Maxine Hepler and Melvin W Cronbaugh. Joel entered the U.S. Army in 1964 and did basic at Fort Leonard Wood. At the age of 41, Joel graduated at LeTourneau College, Longview, Texas.Joel was preceded in death by his parents and his brothers, David and Stephen. Surviving are nieces and nephews, Tara Cronbaugh, Todd Miller, Anya Schmitz, Barbara Wolfe and Stephen Cronbaugh; and many great-nieces and -nephews. The family would like to thank Brown Deer Place and ManorCare, Cedar Rapids, for Joel's last months of care during a long-progressive disease. Thank you to Mercy Hospice Cedar Rapids and specifically, Amy Harris, Mercy Hospice nurse and friend, who offered special attention and love during Joel's last hours. Tara Cronbaugh, Joel's niece, was devoted to Joel's wellbeing during the last, fragile years of his life and we all want to thank her for it. Indeed, it takes a village.The family will be holding a graveside service at noon Saturday, May 9, in the Honey Creek Township, in Koszta, Iowa, at the Koszta Cemetery. Located outside of Marengo, Highwwy 212 to F Avenue in Koszta. In lieu of flowers, memorials may be directed to Mercy Hospice, Cedar Rapids.Online condolences may be made at www.lensingfuneral.com. Full Article Obituaries
ba Elizabeth "Betty" A. Zobac By feedproxy.google.com Published On :: Thu, 07 May 2020 20:23:27 PDT ELIZABETH "BETTY" A. ZOBACCedar RapidsBetty A. Zobac, passed away unexpectedly on Tuesday, May 5, 2020, at the Dennis & Donna Oldorf Hospice House of Mercy. She was 92.Betty was born in Cedar Rapids, Iowa, on Oct. 29, 1927. She was the beloved and only child to Francis and Mary (Cahill) Sullivan. Betty attended grade school at Immaculate Conception Catholic School in Cedar Rapids. Then carried on her education at St. Patrick's High School where she graduated in 1946.It wasn't long after when Betty married the love of her life; Frank Zobac, in August 1947, at the Immaculate Catholic Church in Cedar Rapids. To this union four children were born. Betty and Frank were married for 69 years. Frank passed away on Dec. 15, 2016. Betty was very proud of her ancestry and Irish heritage. Betty and Frank actually got engaged on St. Patrick's Day 1947. She loved celebrating her culture every year on St. Patrick's Day by cooking corned beef and cabbage for her entire family.Betty and Frank were a well-liked and social couple. They developed many friendships throughout their years and were always ready to have fun. The two loved to go out on the town dancing. They would often take a weekend trip to Chicago at the Allerton Hotel on Michigan Avenue. While there they would enjoy Broadway style shows, concerts or even a Cubs game. Later in life Betty and Frank would have season tickets to Iowa Hawkeyes football games. They rarely missed a bowl game during the Hayden Fry era. Neither did they miss a Friday night card group, any bingo game in town or an evening of Frank singing karaoke to Betty. After having four young children, Betty worked the night shift in the pediatric department of Mercy Hospital for three years. Her endless energy and work ethic were remarkable. Betty also was a true fashionista and carried that passion over into her next career. From Killian's to Armstrong's then Coach House Fashions; she worked in retail women's clothing for over 15 years. While still maintaining her voguish taste, Betty's greatest accomplishment of her career began in 1961. As the backbone of the family business; Betty successfully ran the company as general manager of Frank Zobac Construction Co. Frank Zobac Construction Co. was in business for over 60 years. Betty was the matriarch of her family. Betty loved to cook for and with her family. Like her taste for fashion, she was ahead of her time when it came to preparing meals for her family. Betty's culinary creativity led to many delicious and sometimes interesting meals. Rarely following a recipe; she inspired many. Her children, grandchildren and great-grandchildren have carried on her passion for cooking to this day. What Betty started in her little kitchen back in 1947 will be passed down throughout her family for generations. Betty also had an extraordinary love for dachshunds. Whether on the couch or in Hy-Vee, it was rare to see Betty not carrying one of her many spoiled dachshunds.Betty's memory will continue to live on through her four children, Susan (Dennis) Draker of Marion, Mark (Connie) Zobac of Vinton, Kathy (Doug) Klinger of Marion and Debra Zobac of Marion; eight grandchildren, Amy (Clint) Houdek, Jeff (Diana) Draker, Barrett (Kiley) Scorpil, James (Christina) Zobac, Christopher Goodrow, Staci (John) Willems, Traci (Jeff) Chisholm and Michelle Ramirez; and her 16 great-grandchildren.A memorial service will be held at a date to be determined. In lieu of flowers, donations may be made to Dennis and Donna Oldorf Hospice House in memoriam of Frank and Betty Zobac. Please mail to: Susan Draker 2845 Hunters Ridge Rd. Marion, IA 52302.Please leave a message or tribute to Betty's family on our web page, www.cedarmemorial.com, under Obituaries."Rest in Peace, Mom" Full Article Obituaries
ba Barbara Maas By feedproxy.google.com Published On :: Fri, 08 May 2020 20:23:25 PDT WILLIAMSBURGBarbara Maas, 75, of Des Moines, formerly of Williamsburg, died Friday, May 8, 2020. Powell Funeral Home, Williamsburg. Full Article Obituaries
ba Permanence vs. Impermanence (Are we ever going back home?) By feedproxy.google.com Published On :: Tue, 18 Sep 2018 20:33:46 +0000 Tthink about the great relics of human civilization—the pyramids, the magnificent castles of Europe, the Great Wall of China, meticulously detailed sculptures from different eras, the awe-inspiring churches and temples that dot almost every landscape we’ve ever inhabited… All made of stone. All hundreds of years old. All crafted with the intention of permanence and […] Full Article Philosophy Videos
ba Trump sets up states’ rights battle; most conservative governors surrender By www.thegazette.com Published On :: Tue, 5 May 2020 17:18:27 -0400 After more than a decade in the making, the Tea Party moment has finally arrived.The movement originated in 2009 as a challenge to runaway taxes, spending and regulation. Organizers sought to restore the constitutional balance of power between the states and the federal government.Eventually, the Tea Party devolved into a catchall for right-wing populism, and a magnet for xenophobes and culture warriors. In 2016, its early adherents overwhelmingly fell in line with President Donald Trump, choosing protectionism over freedom.But that original Tea Party spirit — the charge to buck the national government in favor of local control — was on full display recently from two unlikely sources.Trump decided early on in the coronavirus pandemic that the federal government would not centrally coordinate the purchase and distribution of medical supplies. That might have worked fine, except the Trump administration actively undermined state governments’ efforts. The federal government has outbid state buyers and even seized products from states.After 3 million masks ordered by the Massachusetts governor were confiscated in New York, Republican Gov. Charlie Baker decided to sidestep the usual procurement process. He sent a New England Patriots’ private airplane to bring supplies back from China.In Maryland, Republican Gov. Larry Hogan coordinated a large COVID-19 test order from South Korea. The delivery was facilitated by the National Guard and state police, and the tests were put in a secure location with armed security.“We guarded that cargo from whoever might interfere with us getting that to our folks that needed it,” Hogan said last week in an interview with Washington Post Live.Hogan and Baker don’t fit the common perception of the Tea Party mold. They both have harshly criticized President Donald Trump and supported the impeachment inquiry. Hogan openly considered challenging Trump for the GOP presidential nomination.They are among the last vestiges of moderate conservatism in American executive office, and yet they are the ones waging a battle over federalism and states’ rights.The political minds built for this moment — the ones who have long fantasized about escalating the state-federal power struggle — are not up to the task. The conservative firebrands who should be taking up this fight instead are beholden to Trump and whatever cockamamie plans he comes up with.At a news conference last month, Trump made a striking claim about his powers in managing the public health crisis: “When somebody is the president of the United States, the authority is total. And that’s the way it’s got to be. It’s total.”That should have been a flashpoint for conservatives, the beginning of a revitalized Tea Party that recognizes the enormous threat Trumpism poses to our values.But it wasn’t. Loyalists brushed it off, again, as Trump misspeaking.The small-government philosophy is founded on the likelihood that the levers of government power will eventually be grabbed by some menace, an incompetent or malicious figure. But when that menace is your friend, your fundraiser and your public relations manager, it proves hard to slap his hand away.adam.sullivan@thegazette.com; (319) 339-3156 Full Article Staff Columnist
ba Big oil overreaches on COVID-19 bailout By www.thegazette.com Published On :: Wed, 6 May 2020 12:06:19 -0400 Like everyone, U.S. oil companies have been hit hard by the pandemic, and they are looking for relief. . Oil companies have requested special access to a $600 billion lending facility at the Federal Reserve, and the administration seems keen to deliver. The president just announced that the Secretary of Energy and Secretary of the Treasury would make funds available, and the Department of Energy is also floating a $7 billion plan to pay drillers to leave oil in the ground. Unfortunately, at least one faction of the industry — a group of refiners that traditionally profit when crude feedstocks are cheap — is angling for much more than a financial bailout. They are using the pandemic as cover to cannibalize markets vital to U.S. biofuel producers and farmers.Their plan, outlined in letter from several oil-patch governors, would require the Environmental Protection Agency (EPA) to halt enforcement of the Renewable Fuel Standard (RFS). It would allow refiners to stop offering biofuel blends at the fuel pump, eliminating the market for U.S. ethanol and biodiesel and decimating demand for billions of bushels of corn and soybeans used to make renewable motor fuel.With half the nation’s 200-plus biofuel plants already offline, thousands of rural workers facing layoffs, and millions of U.S. farmers on financial life support, the destruction of the RFS would be an economic death knell for rural America. It’s hard to imagine why refiners would expect the Trump administration to take the request seriously. The misguided plan would inflict incredible collateral damage on our economy, our energy security, and to the President’s prospects with rural voters. Notably, the courts rejected similar abuse in 2016. Even former EPA Administrator Scott Pruitt, who scorned American farmers, rejected a similar plan back in 2017. Nevertheless, refiners saw the current health crisis as a political opportunity and went for a kill. Fortunately, farm state champions are pushing back. Governors from Kansas, Iowa, Nebraska, South Dakota and Minnesota condemned the oil-backed plan. They wrote, “Using this global pandemic as an excuse to undercut the RFS is not just illegal; it would also sever the economic lifeline that renewable fuels provide for farmers, workers and rural communities across the Midwest.” Aside from the sheer audacity, the refinery-backed plan also suffers from a major flaw — it wouldn’t change the economic situation of a single refinery. They claim that lifting the RFS would eliminate the costs associated with biofuel credits known as RINs, which are used to demonstrate compliance with the nation’s biofuel targets. Refiners that refuse to produce biofuel blends can purchase RINs from those that blend more ethanol or biodiesel into the fuel mix. In turn, when they sell a gallon of fuel, that RIN price is reflected in their returns. The oil industry’s own reports show that “there is no economic harm to RIN purchasers, even if RIN prices are high, because those costs are recouped in the gasoline blend stock and diesel.” Even in a fictional scenario where costs aren’t automatically recouped, a detailed EPA analysis found that “all obligated parties, including the small refiners subject to the RFS program, would be affected at less than 1 percent of their sales (i.e., the estimated costs of compliance with the rule would be less than 1 percent of their sales) even when we did not consider their potential to recover RIN costs — with the estimated cost-to-sales percentages ranging from -0.04 percent (a cost savings) to 0.006 percent.” Clearly, a 0.006 percent savings isn’t going to protect any refinery jobs, but refineries are betting that DC policymakers don’t know the difference between RINs values and compliance costs. They open one side of a ledger and hope that no one asks to see the next page.Meanwhile, the nation’s biggest oil lobby, American Petroleum Institute, is calling on the EPA to simply cut 770 million gallons of biofuel out of the 2020 targets. Earlier this year, regulators approved a modest bump in biofuels to addresses a small fraction of the four billion gallons lost to secretive EPA refinery exemptions. The courts have since sided against the handouts, but the EPA has refused to implement the decision. Now, API says the agency should rip away the few gallons clawed back by U.S. farmers. It’s a baseless argument with one goal: blocking competition at the fuel pump. Keep in mind, collapsing demand for motor fuel is just as hard on the nation’s biofuel producers. RFS targets enforced by the EPA are based on a percentage of each gallon sold — so if refiners make less fuel, their obligations under the law shrink at an equal rate. Meanwhile, biofuel producers across the heartland are closing their doors, as even their modest 10 percent share of the market has been cut in half.Biofuel advocates are focused on their own survival. Iowa Sen. Chuck Grassley summed it up, saying “[T]here ought to be parity for all liquid fuels. So I look forward to working with (Agriculture) Secretary (Sonny) Perdue to make sure that our biofuels industry gets through this crisis so that we can continue to use America’s (home) grown energy in our gas tanks.” Parity makes sense, but refinery lobbyists want more. The Trump EPA should reject the latest anti-biofuel pitch because it’s bad policy, but more than that, it’s an insulting attempt to capitalize on a health crisis to make an end run around the truth. Former Missouri Sen. Jim Talent spearheaded the Renewable Fuel Standard in 2005. He currently serves as co-chair of Americans for Energy Security and Innovation. Full Article Guest Columnist
ba Why universal basic health care is both a moral and economic imperative By www.thegazette.com Published On :: Thu, 7 May 2020 10:03:33 -0400 Several hundred cars were parked outside a food bank in San Antonio on Good Friday — the food bank fed 10,000 people that day. Such scenes, increasingly common across the nation and evocative of loaves and fish, reflect the cruel facts about the wealthiest nation in the world: 80 percent of Americans live paycheck to paycheck, and 100 percent of Americans were unprepared for the COVID-19 pandemic. People are hungry due to macroeconomic and environmental factors, not because they did something wrong. Although everyone is at risk in this pandemic, the risk is not shared equally across socioeconomic classes. Universal basic health care could resolve this disparity and many of the moral and economic aspects associated with the pandemic.Increases in the total output of the economy, or the gross domestic product (GDP), disproportionately benefit the wealthy. From 1980 to 2020, the GDP increased by 79 percent. Over that same time, the after-tax income of the top 0.01 percent of earners increased by 420 percent, while the after-tax income of the middle 40 percent of earners increased by only 50 percent, and by a measly 20 percent for the bottom 50 percent of earners. At present, the top 0.1 percent of earners have the same total net worth as the bottom 85 percent. Such income inequality produces poverty, which is much more common in the U.S. than in other developed countries. Currently 43 million Americans, or 12.7 percent of the population, live in poverty. At the same time, 30 million Americans are uninsured and many more are underinsured with poorly designed insurance plans. The estimated total of uninsured and underinsured Americans exceeds 80 million. In addition, most of the 600,000 homeless people and 11 million immigrants in the U.S. lack health care coverage. Immigrants represent an especially vulnerable population, since many do not speak English and cannot report hazardous or unsafe work conditions. Furthermore, many immigrants avoid care due to fear of deportation even if they entered the country through legal channels.Most people in poverty and many in the middle class obtain coverage from federal programs. On a national level, Medicaid is effectively a middle-class program and covers those living in poverty, 30 percent of adults and 60 percent of children with disabilities as well as about 67 percent of people in nursing homes. In Iowa, 37 percent of children and 48 percent of nursing home residents use Medicaid. Medicaid also finances up to 20 percent of the care provided in rural hospitals. Medicare, Medicaid and the Children’s Hospital Insurance Program (CHIP) together cover over 40 percent of Americans. In addition to facilitating care, health care policy must also address the “social determinants of health,” since the conditions in which people live, work, and play dictate up to 80 percent of their health risks and outcomes. This means that health care reform requires programs in all facets of society. Winston Churchill first conceptualized such an idea in the early 20th century as a tool to prevent the expansion of socialism, arguing that inequality could persist indefinitely without social safety nets. Since that time most developed countries have implemented such social programs, but not the US.All developed countries except the U.S. provide some type of universal basic health care for their residents. Universal basic health care refers to a system that provides all people with certain essential benefits, such as emergency services (including maternity), inpatient hospital and physician care, outpatient services, laboratory and radiology services, treatment of mental illness and substance abuse, preventive health services (including vaccinations), rehabilitation, and medications. Providing access to these benefits, along with primary care, dramatically improves the health of the community without imposing concerns regarding payment. Perhaps not coincidentally, the U.S. reports a lower life expectancy and higher rates of infant mortality, suicide and homicide compared to other developed countries. Countries such as Canada, Great Britain, Denmark, Germany, Switzerland, Australia, and Japan all produce better health care outcomes than the U.S. at a much lower cost. In fact the U.S. spends about twice the percentage of its GDP on health care compared to these countries. With that being said, the Affordable Care Act of 2010 (ACA), which facilitated a decrease in the rate of the uninsured in the U.S. from 20 percent to 12 percent, also decreased the percentage of the GDP spent on health care from 20.2 percent to 17.9 percent in just 10 years. For this reason, most economists agree that universal basic health care would not cost more than the current system, and many would also argue that the total costs of the health care system cannot be further reduced unless everyone has access to basic care.Achieving successful universal basic health care requires a serious long-term commitment from the federal government — contributing to Medicaid and financing its expansion are not enough. It requires courage from our elected leaders. The ACA took several important steps toward this goal by guaranteeing coverage for preexisting conditions, banishing lifetime maximums for essential services, and mandating individual coverage for everyone, though Congress repealed this final provision in 2017. At present, the ACA requires refinement and a public option, thereby preserving private and employer-based plans for those who want them.Without universal basic health care the people living at the margins of society have no assurances that they will have access to basic health care services, especially during times of pandemic. Access to food and medications is less reliable, large families live together in small spaces, and public transportation facilitates frequent exposure to others. Childhood diseases such as asthma, chronic diseases such as diabetes, and diseases related to smoking such as COPD and cancer are all likely to worsen. Quarantine protocols also exacerbate the mental health crisis, further increasing rates of domestic violence, child abuse, substance abuse, depression, and suicide. In the last six weeks over 30 million Americans have applied for unemployment benefits, and as people become unemployed, many will lose health insurance. Access to basic health care without economic or legal consequences would greatly enhance all aspects of pandemic management and response, from tracing contacts and quarantining carriers to administering tests and reinforcing supply chains. The COVID-19 pandemic has disproportionately affected minorities and the impoverished in both mortality and livelihood. Universal basic health care helps these vulnerable populations the most, and by reducing their risk it reduces the risk for everyone. In this way, universal basic health care supports the best interests of all Americans. Like a living wage, universal basic health care aligns with the Christian tradition of social justice and is a moral and economic imperative for all Americans. Nurses, doctors, and other health care providers often observe a sharp contrast between the haves and have-nots when seeing patients. The homeless, the hungry, the unemployed, the working poor, the uninsured; people without families, patients with no visitors, those who live alone or lack support systems; refugees and immigrants — all of these people deserve the fairness and dignity provided by universal basic health care and programs which improve the social determinants of their health. The ACA moved U.S. toward this goal, but now it requires refinement and a public option. The COVID-19 pandemic highlights the urgency of this imperative by demonstrating how universal basic health care could decrease the risks to those less fortunate, thus significantly decreasing the risks to everyone. James M. Levett, MD, serves on the board of Linn County Public Health and is a practicing cardiothoracic surgeon with Physicians’ Clinic of Iowa. Pramod Dwivedi, MS, DrPH (c), is the health director of Linn County Public Health. Full Article Guest Columnist
ba Iowa is going back to work, but who will watch the children? By www.thegazette.com Published On :: Thu, 7 May 2020 14:25:34 -0400 As death rates from COVID-19 rise, the state is beginning to open back up. And with that the expectation is that Iowans get back to work. Iowans who don’t go back to work will lose unemployment benefits, leaving thousands of workers forced to expose themselves and their families to a potentially deadly virus, which experts say could have a second wave in the fall.The rush to reopen the state has left many questions about the health and safety of Iowans unanswered. Among those questions, “Who will watch the children?” is especially crucial.Schools are closed for the rest of the year. The future of summer camps is uncertain. Half of the child care centers in America currently are closed. Using elderly parents for child care can be risky since grandparents are in the age bracket with the highest risk for death and complications from COVID-19.This leaves families, mothers especially, at risk of losing their jobs and unemployment benefits. Nationwide, women still carry the heavy burden of child care, despite the fact that most families are dual income homes. Two-thirds of minimum wage workers in America are women which puts them at risk for unemployment and illness because of exposure to the virus. Already, the child care gap for women contributes to the wage gap. Women earn 80 cents to the male dollar. And the inequality is compounded when segmented by race.Congress has tried to pass a paid leave policy, but those attempts have failed. And Iowa’s governor has so far not commented on the looming child care crisis as she declares victory over the virus and opens up the state.Before the pandemic, a quarter of Iowa families lived in a child care desert, and child care in the state does not even come close to meeting the national definition of affordable. Experts estimated that the Iowa economy loses more than $1 billion each year because of a lack of child care. And with the reality of the pandemic sinking in, it will only get worse.The Department of Human Services received $31.9 million in aid from the federal CARES Act that was dispersed to child care centers to help care for the children of essential workers. But as more people go back to work, that aid will be spent very quickly. Leaving the children of everyone else without answers to this fundamental question. If Reynolds wants to open up the state, her team needs to formulate a comprehensive plan that addresses the lack of child care and offers paid leave and works to reopen child care centers.But rushing to open an economy when there is no child care is an attack not just on families but specifically mothers.(319) 398-8262; editorial@thegazette.com Full Article Staff Editorial
ba How a bad hosting company can impact your business website By feedproxy.google.com Published On :: Thu, 12 Mar 2020 17:47:51 +0000 With the throng of websites on the internet vying for people’s attention, it will be hard to stand out if you don’t have an appealing or dependable business website. Investing in building your own website and acquiring a reliable domain and web hosting provider are some of the things you must do right to make […] More Full Article Web Design
ba Website Localization: Going Global Amidst The Next Recession By feedproxy.google.com Published On :: Fri, 20 Mar 2020 19:34:56 +0000 What does a localization specialist do? What is the concept of localization? If these questions are on your mind, then this article is for you. More Full Article Articles
ba Kanban Vs Scrum – Which One is Best for Your Operation? By feedproxy.google.com Published On :: Sat, 04 Apr 2020 07:22:41 +0000 Scrum and Kanban are terms often used interchangeably in project management, though they have their differences. In fact, that’s why they may be used at the same time for tracking and managing various aspects of work. For example, a Kanban board might be used to track work during a Scrum sprint. However, each has its […] More Full Article Articles
ba Why it’s a Bad Idea to Over-Customize Client Website Templates By feedproxy.google.com Published On :: Wed, 06 May 2020 17:33:10 +0000 Web clients love custom designs. Enough unique changes can turn a pre-made template into a beautiful, original site design. While there’s nothing wrong with tweaking a website for your clients, customization can be taken too far. Granting excessive requests can put your projects into overtime and drive you mad. If you want to avoid […] More Full Article Web Design
ba How to Duplicate WordPress Database using phpMyAdmin By feedproxy.google.com Published On :: Sat, 23 Sep 2017 04:31:46 +0000 Do you want to duplicate your WordPress database using phpMyAdmin? WordPress stores all your website data in a MySQL database. Sometimes you may need to quickly clone a WordPress database to transfer a website or to create manual backups. Full Article Installation Database duplicate phpmyadmin wordpress
ba 9 Obvious Things You Probably Don’t Know About WordPress SEO By feedproxy.google.com Published On :: Fri, 29 Sep 2017 04:48:42 +0000 f there is one thing you should include in your WordPress website’s strategy, it’s search engine optimization. Because when you do it right, you’ll be rewarded. Hugely rewarded. With tons of high quality visitors. Full Article SEO 9 about things
ba Digital Bank Guide By feedproxy.google.com Published On :: Fri, 24 Jan 2020 18:50:04 +0000 Digital Bank Guide is a clean and straightforward site which showcases the latest and best Digital banking offerings in a minimal manner. The post Digital Bank Guide appeared first on WeLoveWP. Full Article Corporate WordPress Gallery Bright Clean
ba 18-year-old charged in fatal shooting arrested for drunken driving while out on bail By feedproxy.google.com Published On :: Wed, 06 May 2020 18:38:28 PDT CEDAR RAPIDS — A 17-year-old, charged in January with fatally shooting an 18-year-old during a drug robbery, was released in March only to be arrested about a month later for drunken driving. Kyler David Carson, now 18, of Cedar Rapids, was charged last month with operating while intoxicated and unlawful possession of an anti-anxiety prescription drug. After two judges reduced Carson’s bail, he bonded out and was released pending trial.Police arrested Carson April 24 when they believed he was driving under the influence of alcohol or drugs, according to a criminal complaint. He provided a breath sample, which showed no signs on alchol, but refused to provide a urine sample for chemical testing, the complaint states. In January, Carson was charged with voluntary manslaughter, delivery of a controlled substance-marijuana, carrying weapons and obstructing prosecution. He is accused of fatally shooting Andrew D. Gaston, 18, on Jan. 24, as Gaston and his cousin, Tyrell J. Gaston, 16, were attempting to rob marijuana from Carson, according to a criminal complaint. Police received a report of shots being fired at 11:48 p.m. and found Andrew and Tyrell Gaston with gunshot wounds in the parking lot of 3217 Agin Court NE. During the investigation, police learned the Gaston cousins had arranged, with the help of others, to rob Carson that night. Witnesses told investigators they contacted Carson and “lured” him to the address to rob him of marijuana.Carson thought he was called that night to sell 45 pre-rolled tubes of marijuana for $900, according to criminal complaint. While Carson was delivering marijuana to the others in their car, the cousins and a third person ambushed Carson from behind, according to a criminal complaint. Andrew Gaston struck Carson in the back of the head with a metal object. Carson then turned around and exchanged gunfire with Tyrell Gaston before running from the parking lot, witnesses told police.Both Carson and Tyrell Gaston later discarded their firearms, which police didn’t recover, according to the complaint.Tyrell Gaston also was charged with first-degree robbery, conspiracy to deliver a controlled substance-marijuana, carrying weapons and obstructing prosecution.A judge, during Carson’s initial appearance in the fatal shooting, set his bail at $50,000 cash only, according to court documents. His bail was amended, in agreement with prosecutor and Carson’s lawyer, to $50,000 cash or surety March 23 by 6th Judicial Associate District Judge Russell Keast. Carson remained in jail, but his lawyer asked for a bond review three days later, March 26, and Associate District Judge Casey Jones lowered the bail to $30,000 cash or surety. Carson posted bail that day, according to court documents. Assistant Linn County Attorney Rena Schulte has filed a motion to revoke Carson’s pretrial release and will request his bail ne set at $500,000. A hearing is set on the motion for next Thursday in Linn County District Court. If convicted, Carson faces up to 19 years in the fatal shooting and up to two years for the other offenses.Comments: (319) 398-8318; trish.mehaffey@thegazette.com Full Article Public Safety
ba Chew on This: Five places to get carryout barbecue By feedproxy.google.com Published On :: Wed, 06 May 2020 18:29:23 PDT In normal times, Chew on This focuses on restaurant openings and closings. These are not normal times, with restaurants closed except to carryout, curbside and delivery. We know these businesses still need support from the community to survive, so each week we are going to highlight five local restaurants. These are just a few of the many places offering barbecue; look up your favorite restaurants on Facebook or call to find out what they have.If you don’t want to leave the house, try a delivery service like Chomp, GrubHub or MyTown2Go. Check with the restaurant to make sure they’re affiliated with a delivery service before ordering.Big’s BBQ Brewpub124 Second Ave. NW, Mount Vernon; (319) 535-1060, facebook.com/bigsbbqGet a growler of house-brewed beer to pair with your barbecue. Every Wednesday features a wings special; check the Facebook page for additional daily specials.County Line6677 16th Ave. SW, Cedar Rapids; (319) 378-4777, facebook.com/austinbluesbbqCall in advance orders from 3 to 7 p.m. Wednesday to Friday and pickup from the food truck parked in the parking lot or stop by the truck parked at Cassill Motors, 2939 16th Ave. SW, Cedar Rapids, from 11 a.m. to 1 p.m. Wednesdays and Fridays.Jimmy Jack’s Rib Shack1940 Lower Muscatine, Iowa City, (319) 354-7427 and 745 Community Dr., North Liberty, (319) 665-2486; jimmyjacksribshack.comThis Iowa City staple has classic dishes like ribs, smoked chicken and brisket and can even please vegetarians with a portobello sandwich.Mosley’s525 S. Gilbert St., Iowa City, (319) 338-1419 and 125 E. Zeller St., North Liberty, (319) 626-4227; mosleysbarbecue.comTry a family-style meal for curbside pickup, featuring four sandwiches or a slab of ribs, plus sides and cornbread, or order off the menu.Willie Ray’s Q Shack288 Blairs Ferry Rd. NE, Cedar Rapids; (319) 206-3806, willieraysqshack.comThis tiny establishment was made for social distancing, with drive-through the only option for service even before the pandemic. Get one of the daily specials or order a la carte.Comments: (319) 398-8339; alison.gowans@thegazette.com Full Article Food & Drink
ba Collaboration creates Camp-in-a-Bag kits for mentoring program By feedproxy.google.com Published On :: Thu, 07 May 2020 09:59:31 PDT “I pledge my Head to clearer thinking, my Heart to greater loyalty, my Hands to larger service, and my Health to better living, for my club, my community, my country, and my world.” — 4-H pledgeThe Johnson County 4-H program is living up to these words, teaming up with Big Brothers Big Sisters of Johnson County to assemble Camp-in-a-Bag kits for the youngest “Littles” enrolled in the BBBS mentoring program. Big Brothers Big Sisters creates one-on-one opportunities between adult volunteer mentors and at-risk youths ages 6 to 18. Known as “Bigs” and “Littles,” they meet for at least six hours a month for 18 months. But those in-person outings to movies, museums, restaurants, recreational activities and new adventures, as well as monthly events and school-based programs organized by the agency, are on hold during the COVID-19 pandemic. So the kits became an outreach outlet. “I was thinking about ways that we would be able to connect with our Littles, to let them know that we’re thinking about them,” said Dina Bishara, program specialist for Big Brothers Big Sisters of Johnson County. “And also in a very small way, to try to fill that gap that so many kids are experiencing right now. They’re used to the structure and activity of school and extracurricular activities and playing with friends.”The bags contain more than six hours of STEAM — science, technology, engineering, arts and math — activities, from the pieces needed for building gliders and balloon flyers, to conducting scientific experiments, planting seeds, choosing healthy snacks and writing down their thoughts. Those activities also reflect the other contributing partners: Johnson County Master Gardeners, Johnson County Extension and Outreach’s Pick a Better Snack program, O’Brien Family McDonalds and Forever Green Garden Center. “(We wanted to) just give them something really fun and also educational and engaging, to help them spend time with their siblings, if they have them, and get their parents involved, if possible — and just really keep them connected to that learning and the fun, but also to Big Brothers Big Sisters,” Bishara said. “Camp-in-a-Bag helps us structure things in an intentional and thoughtful way.”Partnering with 4-H, known for its summer camps, fairs and educational programs, “was a really great way to make sure that the activities we were including were really robust, so it was not going to be a hodgepodge, throw-some-things-in-a-bag,” Bishara added. “We really needed to be deliberate about it, to have the directions nicely laid out.”The first wave is being distributed to 20 elementary-age children, and officials are hoping to expand the project.“Funding is always a question,” Bishara said. “We would love to expand to 20 or 40 for more. ... We’d sure like to be able to target the kits to a little older kids, who have different interests.”Bishara and Kate Yoder, who works with 4-H out of the Iowa State University Extension office in Johnson County, are eager to continue their collaborative efforts. “It really great,” Yoder said. “When you work together, things comes together and amazing things happen. I’m excited to see what the future holds — what partnerships we can build on and grow.”Comments: (319) 368-8508; diana.nollen@thegazette.comTo help• What: Big Brothers Big Sisters Camp-in-a-Bag kit contributions• Contact: Email Dina Bishara at dina@bbbsjc.org Full Article Community
ba C.R. workplace shooting suspect turns self in after father drives him to Alabama police station By feedproxy.google.com Published On :: Fri, 08 May 2020 17:05:43 PDT A man suspected of a workplace shooting last month at a vinyl window manufacturer in southwest Cedar Rapids turned himself into authorities Friday.Jamal Devonte Edwards, 26, has been wanted since two men were shot at Associated Materials, 3801 Beverly Rd. SW, the morning of April 9. Cedar Rapids police had indicated Edwards was wanted in particular for the shooting of Mark Robertson, 36.Edwards faces charges of attempted murder, intimidation with a dangerous weapon, going armed with intent and willful injury.The U.S. Marshals Service helped locate Edwards, distributing a photo of Edwards along the Gulf Coast. He was located in Mobile, Ala. when his father brought him to the Mobile police department so he could turn himself in, according to a Cedar Rapids police news release.The April 9 shooting was reported at 5:03 a.m. after two employees were shot at Associated Materials. Both suffered non-life-threatening injuries, police said.Police said at the time it appeared the shooter knew the two men.Shawn Hardy, senior vice president of integrated products for Associated Materials, confirmed Edwards worked at the Cedar Rapids business, which gave him access to the building, but said he had been employed through a temp agency. Full Article Public Safety
ba Congress working remotely highlights need for better broadband connectivity, Loebsack says By feedproxy.google.com Published On :: Sat, 09 May 2020 10:44:03 PDT CEDAR RAPIDS — Like other members of the United States House, the “new normal” for Rep. Dave Loebsack involves a lot of time on the phone and in video conferences.Although the Senate returned to Washington this past week, the House may not return to the Capitol until mid-May. As representatives work from their districts, many face the same challenges as their constituents who are working from home via various phone and video meeting platforms.“They’re clunky, difficult, frustrating at times,” the 2nd District Democrat said after a 90-minute Energy and Commerce Committee teleconference meeting, “but we can get a lot of things done that way without necessarily going into Washington. It’s not the same by any means ... but I think we can get a lot of our work done that we have to get done even though were not there.”If there’s an upside to the telecommuting downside, it’s that the poor connections, dropped calls and sometimes spotty internet signals highlight an issue Loebsack has been working on — Congress and the country need better broadband connectivity. A member of the Communications and Technology subcommittee of the Energy and Commerce Committee, which has jurisdiction over telecommunications issues, Loebsack also serves as a co-chair of the Rural Broadband Caucus.In one meeting, Loebsack said, a fellow committee member was unable to ask questions because the Wi-Fi signal at his home outside of a southwestern city was so poor.“So I think we’re going to make some progress” convincing congressional colleagues of the need to connect all Americans to reliable and affordable broadband internet, Loebsack said.“In times like these, when families are at home, millions of K-12 students do not have access to the high-speed internet needed to take classes and complete their assignments online,” he said in an announcement with House Majority Whip James Clyburn and others of a House Democratic plan to connect all Americans to high-speed internet.When the transmission of COVID-19 slows, the need for high-speed internet connectivity will remain as well as the need for Congress to provide incentives for internet service providers to close the “broadband gap” by extending service to the las mile in rural areas and eliminate what he called “internet deserts” that exist in cities.The plan calls for an investment of $80 billion over five years for internet infrastructure and another $5 billion over five years for low-interest financing of projects.With more reliable connectivity, Congress could consider remote voting at times like this when members don’t want to gather in Washington. House Speaker Nancy Pelosi has been cool to the idea, but Loebsack thinks members are “more open” to voting remotely.“But we have to make sure that it’s completely secure, that the system can’t get hacked, and that votes are recorded properly,” he said.Remote voting may be a may be a generational issue, “but I think this is doable.”“I’m not making that prediction, but I would not be shocked if we move in that direction, especially the longer this (isolation) goes on,” Loebsack said.Comments: (319) 398-8375; james.lynch@thegazette.com Full Article Government
ba Barn Ruins By feedproxy.google.com Published On :: Tue, 24 Mar 2015 14:28:39 -0500 Posted on March 24, 2015 Barn Ruins Photo Info & Viewer Comments Tweet Full Article Architecture
ba Web Fonts, Dingbats, Icons, and Unicode By feedproxy.google.com Published On :: Wed, 18 Aug 2010 07:33:46 PDT Yesterday, Cameron Koczon shared a link to the dingbat font, Pictos, by the talented, Drew Wilson. Cameron predicted that dingbats will soon be everywhere. Symbol fonts, yes, I thought. Dingbats? No, thanks. Jason Santa Maria replied: @FictiveCameron I hope not, dingbat fonts sort of spit in the face of accessibility and semantics at the moment. We need better options. Jason rightly pointed out the accessibility and semantic problems with dingbats. By mapping icons to letters or numbers in the character map, they are represented on the page by that icon. That’s what Pictos does. For example, by typing an ‘a’ on your keyboard, and setting Pictos as the font-face for that letter, the Pictos anchor icon is displayed. Other folks suggested SVG and JS might be better, and other more novel workarounds to hide content from assistive technology like screen readers. All interesting, but either not workable in my view, or just a bit awkward. Ralf Herrmann has an elegant CSS example that works well in Safari. Falling down with CSS text-replacement A CSS solution in an article from Pictos creator, Drew Wilson, relies on the fact that most of his icons are mapped to a character that forms part of the common name for that symbol. The article uses the delete icon as an example which is mapped to ‘d’. Using :before and :after pseudo-elements, Drew suggests you can kind-of wrangle the markup into something sort-of semantic. However, it starts to fall down fast. For example, a check mark (tick) is mapped to ‘3’. There’s nothing semantic about that. Clever replacement techniques just hide the evidence. It’s a hack. There’s nothing wrong with a hack here and there (as box model veterans well know) but the ends have to justify the means. The end of this story is not good as a VoiceOver test by Scott at Filament Group shows. In fairness to Drew Wilson, though, he goes on to say if in doubt, do it the old way, using his font to create a background image and deploy with a negative text-indent. I agreed with Jason, and mentioned a half-formed idea: @jasonsantamaria that’s exactly what I was thinking. Proper unicode mapping if possible, perhaps? The conversation continued, and thanks to Jason, helped me refine the idea into this post. Jon Hicks flagged a common problem for some Windows users where certain Unicode characters are displayed as ‘missing character’ glyphs depending on what character it is. I think most of the problems with dingbats or missing Unicode characters can be solved with web fonts and Unicode. Rising with Unicode and web fonts I’d love to be able to use custom icons via optimised web fonts. I want to do so accessibly and semantically, and have optimised font files. This is how it could be done: Map the icons in the font to the existing Unicode code points for those symbols wherever possible. Unicode code points already exist for many common symbols. Fonts could be tiny, fast, stand-alone symbol fonts. Existing typefaces could also be extended to contain symbols that match the style of individual widths, variants, slopes, and weights. Imagine a set of Clarendon or Gotham symbols for a moment. Wouldn’t that be a joy to behold? There may be a possibility that private code points could be used if a code-point does not exist for a symbol we need. Type designers, iconographers, and foundries might agree a common set of extended symbols. Alternatively, they could be proposed for inclusion in Unicode. Include the font with font-face. This assumes ubiquitous support (as any use of dingbats does) — we’re very nearly there. WOFF is coming to Safari and with a bit more campaigning we may even see WOFF on iPad soon. In HTML, reference the Unicode code points in UTF-8 using numeric character references. Unicode characters have corresponding numerical references. Named entities may not be rendered by XML parsers. Sean Coates reminded me that in many Cocoa apps in OS X the character map is accessible via a simple CMD+ALT+t shortcut. Ralf Herrmann mentioned that unicode characters ‘…have “speaking” descriptions (like Leftwards Arrow) and fall back nicely to system fonts.’ Limitations Accessibility: Limited Unicode / entity support in assistive devices. My friend and colleague, Jon Gibbins’s old tests in JAWS 7 show some of the inconsistencies. It seems some characters are read out, some ignored completely, and some read as a question mark. Not great, but perhaps Jon will post more about this in the future. Elizabeth Pyatt at Penn State university did some dingbat tests in screen readers. For real Unicode symbols, there are pronunciation files that increase the character repertoire of screen readers, like this file for phonetic characters. Symbols would benefit from one. Web fonts: font-face not supported. If font-face is not supported on certain devices like mobile phones, falling back to system fonts is problematic. Unicode symbols may not be present in any system fonts. If they are, for many designers, they will almost certainly be stylistically suboptimal. It is possible to detect font-face using the Paul Irish technique. Perhaps there could be a way to swap Unicode for images if font-face is not present. Now, next, and a caveat I can’t recommend using dingbats like Pictos, but the icons sure are useful as images. Beautifully crafted icon sets as carefully crafted fonts could be very useful for rapidly creating image icons for different resolution devices like the iPhone 4, and iPad. Perhaps we could try and formulate a standard set of commonly used icons using the Unicode symbols range as a starting point. I’ve struggled to find a better visual list of the existing symbols than this Unicode symbol chart from Johannes Knabe. Icons in fonts as Unicode symbols needs further testing in assistive devices and using font-face. Last, but not least, I feel a bit cheeky making these suggestions. A little knowledge is a dangerous thing. Combine it with a bit of imagination, and it can be lethal. I have a limited knowledge about how fonts are created, and about Unicode. The real work would be done by others with deeper knowledge than I. I’d be fascinated to hear from Unicode, accessibility, or font experts to see if this is possible. I hope so. It feels to me like a much more elegant and sustainable solution for scalable icons than dingbat fonts. For more on Unicode, read this long, but excellent, article recommended by my colleague, Andrei, the architect of Unicode and internationalization support in PHP 6: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets. Full Article
ba 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
ba A Parent’s Guide to Working From Home, During a Global Pandemic, Without Going Insane By feedproxy.google.com Published On :: Thu, 30 Apr 2020 15:06:00 -0400 Though I usually enjoy working from Viget’s lovely Boulder office, during quarantine I am now working from home while simultaneously parenting my 3-year-old daughter Audrey. My husband works in healthcare and though he is not on the front lines battling COVID-19, he is still an essential worker and as such leaves our home to work every day. Some working/parenting days are great! I somehow get my tasks accomplished, my kid is happy, and we spend some quality time together. And some days are awful. I have to ignore my daughter having a meltdown and try to focus on meetings, and I wish I wasn’t in this situation at all. Most days are somewhere in the middle; I’m just doing my best to get by. I’ve seen enough working parent memes and cries for help on social media to know that I’m not alone. There are many parents out there who now get to experience the stress and anxiety of living through a global pandemic while simultaneously navigating ways to stay productive while working from home and being an effective parent. Fun isn’t it? I’m not an expert on the matter, but I have found a few small things that are making me feel a bit more sane. I hope sharing them will make someone else’s life easier too. Truths to Accept First, let’s acknowledge some truths about this new situation we find ourselves in: Truth 1: We’ve lost something. Parents have lost more than daycare and schools during this epidemic. We’ve lost any time that we had for ourselves, and that was really valuable. We no longer have small moments in the day to catch up on our personal lives. I no longer have a commute to separate my work duties from my mom duties, or catch up with my friends, or just be quiet. Truth 2: We’re human. The reason you can’t be a great employee and a great parent and a great friend and a great partner or spouse all day every day isn’t because you’re doing a bad job, it’s because being constantly wonderful in all aspects of your life is impossible. Pick one or two of those things a day to focus on. Truth 3: We’re all doing our best. This is the most important part of this article. Be kind to yourselves. This isn’t easy, and putting so much pressure on yourself that you break isn’t going to make it any easier. Work from Home Goals Now that we’ve accepted some truths about our current situation, let’s set some goals. Goal 1: Do Good Work At Viget, and wherever you work, with kids or without we all want to make sure that the quality of our work stays up throughout the pandemic and that we can continue to be reliable team members and employees to the best of our abilities. Goal 2: Stay Sane We need to figure out ways to do this without sacrificing ourselves entirely. For me, this means fitting my work into normal work hours as much as possible so that I can still have some downtime in the evenings. Goal 3: Make This Sustainable None of us knows how long this will last but we may as well begin mentally preparing for a long haul. Work from Home Rules Now, there are some great Work from Home Rules that apply to everyone with or without kids. My coworker Paul Koch shared these with the Viget team a Jeremy Bearimy ago and I agree this is also the foundation for working from home with kids. When you’re in a remote meeting, minimize other windows to stay focusedSet a schedule and avoid chores*Take breaks away from the screenPlan your workday on the calendar+Be mindful of Slack and social media as a distractionUse timers+Keep your work area separate from where you relaxPretend that you’re still WFWExperiment and figure out what works for you In the improv spirit I say “Yes, AND….” to these tips. And so, here are my adjusted rules for WFH while kiddos around: These have both been really solid tools for me, so let’s dig in. Daily flexible schedule for kids Day Planning: Calendars and Timers A few small tweaks and adjustments make this even more doable for me and my 3-year-old. First- I don’t avoid chores entirely. If I’m going up and down the stairs all day anyway I might as well throw in a load of laundry while I’m at it. The more I can get done during the day means a greater chance of some down time in the evening. Each morning I plan my day and Audrey’s day: My Work Day:Audrey's DayIdentify times of day you are more likely to be focus and protect them. For me, I know I have a block of time from 5-7a before Audrey wakes up and again during “nap time” from 1-3p.I built a construction paper “schedule” that we update and reorganize daily. We make the schedule together each day. She feels ownership over it and she gets to be the one who tells me what we do next.Look at your calendar first thing and make adjustments either in your plans or move meetings if you have to.I’m strategic about screen time- I try to schedule it when I have meetings. It also helps to schedule a physical activity before screen time as she is less likely to get bored.Make goals for your day: Tackle time sensitive tasks first. Take care of things that either your co-workers or clients are waiting on from you first, this will help your day be a lot less stressful. Non-time sensitive tasks come next- these can be done at any time of day.We always include “nap time” even though she rarely naps anymore. This is mostly a time for us both to be alone. When we make the schedule together it also helps me understand her favorite parts of the day and reminds me to include them. Once our days are planned, I also use timers to help keep the structure of the day. (I bought a great alarm clock for kids on Amazon that turns colors to signal bedtime and quiet time. It’s been hugely worth it for me.) Timers for Me:Timers for Audrey:More than ever, I rely on a time tracking timer. At Viget we use Harvest to track time, and it has a handy built in timer, but there are many apps or online tools that could help you keep track of your time as well.Audrey knows what time she can come out of her room in the morning. If she wakes up before the light is green she plays quietly in her room.I need a timer because the days and hours are bleeding together- without tracking as I go it would be really hard for me to remember when I worked on certain projects or know for certain if I gave Viget enough time for the day.She knows how long “nap time” is in the afternoon.Starting and stopping the timer helps me turn on and off “work mode”, which is a helpful sanity bonus.Perhaps best of all I am not the bad guy! “Sorry honey, the light isn’t green yet and there really isn’t anything mommy can do about it” is my new favorite way to ensure we both get some quiet time. Work from Home Rules: Updated for Parents Finally, I have a few more Work from Home Rules for parents to add to the list: Minimize other windows in remote meetingsSet a schedule and fit in some chores if time allowsTake breaks away from the screenSchedule both your and your kids’ daysBe mindful of Slack and social media as a distractionUse timers to track your own time and help your kids understand the dayKeep your work area separate from where you relaxPretend that you’re still WFWExperiment and figure out what works for youBe prepared with a few activitiesEach morning, have just ONE thing ready to go. This can be a worksheet you printed out, a coloring station setup, a new bag of kinetic sand you just got delivered from Amazon, a kids dance video on YouTube or an iPad game. Recently I started enlisting my mom to read stories on Facetime. The activity doesn’t have to be new each day but (especially for young kids) it has to be handy for you to start up quickly if your schedule changesClearly communicate your availability with your team and project PMsLife happens. Some days are going to be hard. Whatever you do, don’t burn yourself out or leave your team hanging. If you need to move a meeting or take a day off, communicate that as early and as clearly as you can.Take PTO if you canNone of us are superheroes. If you’re feeling overwhelmed- take a look at the next few days and figure out which one makes the most sense for you to take a break.Take breaks to be alone without doing a taskWork and family responsibilities have blended together, there’s almost no room for being alone. If you can find some precious alone time don’t use it to fold laundry or clean the bathroom. Just zone out. I think we all really need this. Last but not least, enjoy your time at home if you can. This is an unusual circumstance and even though it’s really hard, there are parts that are really great too. If you have some great WFH tips we’d love to hear about them in the comments! Full Article Process News & Culture
ba So You've Written a Bad Design Take By feedproxy.google.com Published On :: Tue, 05 May 2020 08:00:00 -0400 So you’ve just written a blog post or tweet about why wireframes are becoming obsolete, the dangers of “too accessible” design, or how a certain style of icon creates “cognitive fatigue.” Your post went viral, but now you’re getting ratioed by rude people on the Internet. That sucks! You were just trying to start a conversation and you probably didn’t deserve all that negativity (except for you, “too accessible” guy). Most likely, you made one of these common mistakes: 1. You made generalizations about “design” You, a good user-centered designer, know that you are not your user. Nor are you every designer. First of all, let's acknowledge that there is no universal definition of design. Even if we narrow it down to software design, it’s still hard to make generalizations. Agency, in-house, product, startup, enterprise, non-profit, website, app, connected hardware, etc. – there are a lot of different work contexts and cultures for people with “designer” in their titles. "The Design Industry" is not a thing, but even if it were, you don't speak for it. Don’t assume that the kind of design work you do is the universal default. 2. You didn’t share enough context There are many great design books and few great design blog posts. (There are, to my knowledge, no great design tweets, but I am open to your suggestions.) Writing about design is not well suited to short formats, because context plays such an important role and there’s always a lot of it to cover. Writing about your work should include as much context as you would include if you were presenting your portfolio for a job interview. What kind of organization did you work for? Who was your client and/or your stakeholders? What was the goal of the project? Your timeline? What was the makeup of your team? What were the notable business rules and constraints? How are you defining effectiveness and success? Without these kinds of details, it’s not possible for other designers to know if what you’ve written is credible or applicable to them. 3. You were too certain A blog post doesn’t need to be a dissertation. It’s okay to share hunches and anecdotes, but give the necessary caveats. And if you're making claims about science, bruh, you gotta cite your sources. Be humble in your takes. Your account of what worked for you and why is more valuable to your peers than making sweeping claims and reheating the same old arguments. Be prepared to be told you’re wrong, and have the humility to realize that your perspective is just your perspective. Real conversations, like good design, are built on feedback and diverse viewpoints. — Together, we can improve the discourse in our information ecosystems. Don't generalize. Give context. Be humble. Full Article Design & Content User Experience
ba Should you use Userbase for your next static site? By feedproxy.google.com Published On :: Wed, 06 May 2020 08:00:00 -0400 During the winter 2020 Pointless Weekend, we built TrailBuddy (working app coming soon). Our team consisted of four developers, two project managers, two front-end developers, a digital-analyst, a UXer, and a designer. In about 48 hours, we took an idea from Jeremy Field’s head to a (mostly) working app. We broke up the project in two parts:. First, a back-end that crunches trail, weather, and soil data. That data is exposed via a GraphQL API for a web app to consume. While developers built the API, I built a static front end using Next.js. Famously, static front-ends don’t have a database, or a concept of “users.” A bit of functionality I wanted to add was saving favorite trails. I didn’t want to be hacky about it, I needed some way to add users and a database. I knew it’d be hard for the developers to set this up as part of the API, they had their hands full with all the #soil-soil-soil-soil-soil (a slack channel dedicated solely to figuring out our soil data problem—those were plentiful.) I had been looking for an excuse to use Userbase, and this seemed like as good a time as any. A textbook Userbase use case “When would I use it?” The Usebase site lists these reasons: If you want to build a web app without writing any backend code. If you never want to see your users' data. If you're tired of dealing with databases. If you want to radically simplify your GDPR compliance. And if you want to keep things really simple. This was a perfect fit for my problem. I didn’t want to write any more backend code for this. I didn’t want to see our user’s data, I don’t care to know anyone’s favorite trails.* A nice bonus to not having users in our backend was not having to worry about keeping their data safe. We don’t have their data at all, it’s end-to-end encrypted by Userbase. We can offer a reasonable amount of privacy for free (well for the price of using Userbase: $49 a year.) I am not tired of dealing with databases, but I’d rather not. I don’t think anyone doesn’t want to simplify their GDPR compliance. Finally, given our tight timeline I wanted nothing more than to keep things really simple. A sign up form that I didn't have to write a back-end for Using Userbase Userbase can be tried for free, so I set aside thirty minutes or so to do a quick proof of concept to make sure this would work out for us. I made an account and followed their Quickstart. Userbase is a fundamentally easy tool to use, but their quickstart is everything I’d want out of a quickstart: Written in the most vanilla way possible (just HTML and vanilla JS). This means I can adapt it to my needs, in this case React using Next.js Easy to follow, it does the most barebones tour of the functionality you can expect to get out of the SDK (software development kit.) In other words it is quick and it is a start It has a live demo and code samples you can download and run yourself It didn’t take long after that to integrate Userbase into our app with more help from their great docs. I debated whether to add code samples of what we did here, and I didn’t because any reader would be better off using the great quickstart and docs Userbase provides—they are that clear, and that good. Depending on your use case you’ll need to adapt the examples to your needs, for us the trickiest things were creating a top level authentication context to manage users in the app, and a custom hook to encapsulate all the logic for setting, updating, and deleting favourite trails in the app. Userbase’s SDK worked seamlessly for us. A log in form that I didn't have to write a back-end for Is Userbase for you? Maybe. I am definitely a fan, so much so that this blog post probably reads like an advert. Userbase saved me a ton of time in this project. It reminded me of “The All Powerful Front End Developer” talk by Chris Coyer. I don’t fully subscribe to all the ideas in that talk, but it is nice to have “serverless” tools like Userbase, and all the new JAMstacky things. There are limits to the Userbase serverless experience in terms of scale, and control. Obviously relying on a third party for something always carries some (probably small) risk—it’s worth noting Usebase includes a note on their pricing page that says “You can host it yourself always under your control, or we can run it for you for a full serverless experience”—Still, I wouldn’t hesitate this to use in future projects. One of the great things about Viget and Pointless Weekend is the opportunity to try new things. For me that was Next.js and Userbase for Trailbuddy. It doesn’t always work out (in fact this is my first pointless weekend where a risk hasn’t blown up in my face) but it is always fun. Getting to try out Userbase and beginning to think about how we may use it in the future made the weekend worthwhile for me, and it made my job on this project much more enjoyable. *I will write a future post about privacy conscious analytics in TrailBuddy when I’ve figured that out. I am looking into Fathom Analytics for that. Full Article Code Front-end Engineering
ba Global Gitignore Files Are Cool and So Are You By feedproxy.google.com Published On :: Wed, 06 May 2020 08:00:00 -0400 Setting it up First, here's the config setup you need to even allow for such a radical concept. Define the global gitignore file as a global Git configuration: git config --global core.excludesfile ~/.gitignore If you're on OSX, this command will add the following config lines in your ~/.gitconfig file. [core] excludesfile = /Users/triplegirldad/.gitignore Load that ~/.gitignore file up with whatever you want. It probably doesn't exist as a file yet so you might have to create it first. Harnessing its incredible power There are only two lines in my global gitignore file and they are both fairly useful pretty much all the time. $ cat ~/.gitignore TODO.md playground This 2 line file means that no matter where I am, what project I'm working on, where in the project I'm doing so, I have an easy space to stash notes, thoughts, in progress ideas, spikes, etc. TODO.md More often than not, I'm fiddling around with a TODO.md file. Something about writing markdown in your familiar text editor speaks to my soul. It's quick, it's easy, you have all the text editing tricks available to you, and it never does anything you wouldn't expect (looking at you auto-markdown-formatting editors). I use one or two # for headings, I use nested lists, and I ask for nothing more. Nothing more than more TODO.md files that is! In practice I tend to just have one TODO.md file per project, right at the top, ready to pull up in a few keystrokes. Which I do often. I pull this doc up if: I'm in a meeting and I just said "oh yeah that's a small thing, I'll knock it out this afternoon". I'm halfway through some feature development and realize I want to make a sweeping refactor elsewhere. Toss some thoughts in the doc, and then get back to the task at hand. It's the end of the day and I have to switch my brain into "feed small children" mode, thus obliterating everything work-related from my short term memory. When I open things up the next day and know exactly what the next thing to dive into was. I'm preparing for a big enough refactor and I can't hold it all in my brain at once. What I'd give to have an interactive 3D playground for brain thoughts, but in the meantime a 2D text file isn't a terrible way to plan out dev work. playground Sometimes you need more than some human words in a markdown file to move an idea along. This is where my playground directory comes in. I can load this directory up with code that's related to a given project and keep it out of the git history. Because who doesn't like a place to play around. I find that this directory is more useful for long running maintenance projects over fast moving greenfield ones. On the maintenance projects, I tend to find myself assembling a pile of scripts and experiments for various situations: The client requests a one-time obscure data export. Whip up some CSV generation code and save that code in the playground directory. The client requests a different obscure data export. Pull up the last time you did something vaguely similar and save yourself the startup time. A batch of data needs to be imported just once. Might as well stash that in the chance that "just once" is actually "just a few times". Kicking the tires on an integration with a third party service. Some of these playground files end up being useful more times than I can count (eg: the ever-changing user_export.rb script). Some items get promoted into application code, which is always fun. But most files here serve their purpose and then wither away. And that's fine. It's a playground, anything goes. Wrapping up Having a personal space for project-specific notes and code has been helpful to me over the years as a developer on multiple projects. If you have your own organizational trick, or just want to brag about how you memorize everything without any markdown files, let me know in the comments below! Full Article Code
ba Australia is recruiting – New Global Talent Visa By feedproxy.google.com Published On :: Tue, 14 Jan 2020 06:54:24 +0000 Australia has introduced a streamlined, priority visa pathway for highly skilled and talented individuals to work and live permanently in Australia. The Government and industry has recognised there is growing competition for talent around the globe and to compete we must have a pathway that leads to certainty for people wishing to come to Australia. […] The post Australia is recruiting – New Global Talent Visa appeared first on Visa Australia - Immigration Lawyers & Registered Migration Agents. Full Article Work & Skilled Visas agricultural business australian immigration cyber security Digital technologies employement Financial technology global talent visa jobs Medical technologies Migration Australia talent visa urban development work work visa
ba Australia’s global talent visa for individuals and businesses By feedproxy.google.com Published On :: Mon, 06 Apr 2020 05:48:19 +0000 In late 2019 the Australian Government launched the Global Talent – Independent program which offers a streamlined, priority visa pathway for highly skilled and talented individuals to work and live permanently in Australia. There are two streams. The first is the Global Talent Independent Program (GTI) and the second is the Global Talent Employer Sponsored (GTES). […] The post Australia’s global talent visa for individuals and businesses appeared first on Visa Australia - Immigration Lawyers & Registered Migration Agents. Full Article Work & Skilled Visas AgTech existing skilled visa programs FinTech Global Talent Employer Sponsored Global Talent Independent Program GTES GTES agreement GTI highly-skilled niche positions job opportunities Medium-term stream MedTech niche job overseas workers Short-term stream skilled employee skilled worker Temporary skill shortage TSS
ba 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
ba A Parent’s Guide to Working From Home, During a Global Pandemic, Without Going Insane By feedproxy.google.com Published On :: Thu, 30 Apr 2020 15:06:00 -0400 Though I usually enjoy working from Viget’s lovely Boulder office, during quarantine I am now working from home while simultaneously parenting my 3-year-old daughter Audrey. My husband works in healthcare and though he is not on the front lines battling COVID-19, he is still an essential worker and as such leaves our home to work every day. Some working/parenting days are great! I somehow get my tasks accomplished, my kid is happy, and we spend some quality time together. And some days are awful. I have to ignore my daughter having a meltdown and try to focus on meetings, and I wish I wasn’t in this situation at all. Most days are somewhere in the middle; I’m just doing my best to get by. I’ve seen enough working parent memes and cries for help on social media to know that I’m not alone. There are many parents out there who now get to experience the stress and anxiety of living through a global pandemic while simultaneously navigating ways to stay productive while working from home and being an effective parent. Fun isn’t it? I’m not an expert on the matter, but I have found a few small things that are making me feel a bit more sane. I hope sharing them will make someone else’s life easier too. Truths to Accept First, let’s acknowledge some truths about this new situation we find ourselves in: Truth 1: We’ve lost something. Parents have lost more than daycare and schools during this epidemic. We’ve lost any time that we had for ourselves, and that was really valuable. We no longer have small moments in the day to catch up on our personal lives. I no longer have a commute to separate my work duties from my mom duties, or catch up with my friends, or just be quiet. Truth 2: We’re human. The reason you can’t be a great employee and a great parent and a great friend and a great partner or spouse all day every day isn’t because you’re doing a bad job, it’s because being constantly wonderful in all aspects of your life is impossible. Pick one or two of those things a day to focus on. Truth 3: We’re all doing our best. This is the most important part of this article. Be kind to yourselves. This isn’t easy, and putting so much pressure on yourself that you break isn’t going to make it any easier. Work from Home Goals Now that we’ve accepted some truths about our current situation, let’s set some goals. Goal 1: Do Good Work At Viget, and wherever you work, with kids or without we all want to make sure that the quality of our work stays up throughout the pandemic and that we can continue to be reliable team members and employees to the best of our abilities. Goal 2: Stay Sane We need to figure out ways to do this without sacrificing ourselves entirely. For me, this means fitting my work into normal work hours as much as possible so that I can still have some downtime in the evenings. Goal 3: Make This Sustainable None of us knows how long this will last but we may as well begin mentally preparing for a long haul. Work from Home Rules Now, there are some great Work from Home Rules that apply to everyone with or without kids. My coworker Paul Koch shared these with the Viget team a Jeremy Bearimy ago and I agree this is also the foundation for working from home with kids. When you’re in a remote meeting, minimize other windows to stay focusedSet a schedule and avoid chores*Take breaks away from the screenPlan your workday on the calendar+Be mindful of Slack and social media as a distractionUse timers+Keep your work area separate from where you relaxPretend that you’re still WFWExperiment and figure out what works for you In the improv spirit I say “Yes, AND….” to these tips. And so, here are my adjusted rules for WFH while kiddos around: These have both been really solid tools for me, so let’s dig in. Daily flexible schedule for kids Day Planning: Calendars and Timers A few small tweaks and adjustments make this even more doable for me and my 3-year-old. First- I don’t avoid chores entirely. If I’m going up and down the stairs all day anyway I might as well throw in a load of laundry while I’m at it. The more I can get done during the day means a greater chance of some down time in the evening. Each morning I plan my day and Audrey’s day: My Work Day:Audrey's DayIdentify times of day you are more likely to be focus and protect them. For me, I know I have a block of time from 5-7a before Audrey wakes up and again during “nap time” from 1-3p.I built a construction paper “schedule” that we update and reorganize daily. We make the schedule together each day. She feels ownership over it and she gets to be the one who tells me what we do next.Look at your calendar first thing and make adjustments either in your plans or move meetings if you have to.I’m strategic about screen time- I try to schedule it when I have meetings. It also helps to schedule a physical activity before screen time as she is less likely to get bored.Make goals for your day: Tackle time sensitive tasks first. Take care of things that either your co-workers or clients are waiting on from you first, this will help your day be a lot less stressful. Non-time sensitive tasks come next- these can be done at any time of day.We always include “nap time” even though she rarely naps anymore. This is mostly a time for us both to be alone. When we make the schedule together it also helps me understand her favorite parts of the day and reminds me to include them. Once our days are planned, I also use timers to help keep the structure of the day. (I bought a great alarm clock for kids on Amazon that turns colors to signal bedtime and quiet time. It’s been hugely worth it for me.) Timers for Me:Timers for Audrey:More than ever, I rely on a time tracking timer. At Viget we use Harvest to track time, and it has a handy built in timer, but there are many apps or online tools that could help you keep track of your time as well.Audrey knows what time she can come out of her room in the morning. If she wakes up before the light is green she plays quietly in her room.I need a timer because the days and hours are bleeding together- without tracking as I go it would be really hard for me to remember when I worked on certain projects or know for certain if I gave Viget enough time for the day.She knows how long “nap time” is in the afternoon.Starting and stopping the timer helps me turn on and off “work mode”, which is a helpful sanity bonus.Perhaps best of all I am not the bad guy! “Sorry honey, the light isn’t green yet and there really isn’t anything mommy can do about it” is my new favorite way to ensure we both get some quiet time. Work from Home Rules: Updated for Parents Finally, I have a few more Work from Home Rules for parents to add to the list: Minimize other windows in remote meetingsSet a schedule and fit in some chores if time allowsTake breaks away from the screenSchedule both your and your kids’ daysBe mindful of Slack and social media as a distractionUse timers to track your own time and help your kids understand the dayKeep your work area separate from where you relaxPretend that you’re still WFWExperiment and figure out what works for youBe prepared with a few activitiesEach morning, have just ONE thing ready to go. This can be a worksheet you printed out, a coloring station setup, a new bag of kinetic sand you just got delivered from Amazon, a kids dance video on YouTube or an iPad game. Recently I started enlisting my mom to read stories on Facetime. The activity doesn’t have to be new each day but (especially for young kids) it has to be handy for you to start up quickly if your schedule changesClearly communicate your availability with your team and project PMsLife happens. Some days are going to be hard. Whatever you do, don’t burn yourself out or leave your team hanging. If you need to move a meeting or take a day off, communicate that as early and as clearly as you can.Take PTO if you canNone of us are superheroes. If you’re feeling overwhelmed- take a look at the next few days and figure out which one makes the most sense for you to take a break.Take breaks to be alone without doing a taskWork and family responsibilities have blended together, there’s almost no room for being alone. If you can find some precious alone time don’t use it to fold laundry or clean the bathroom. Just zone out. I think we all really need this. Last but not least, enjoy your time at home if you can. This is an unusual circumstance and even though it’s really hard, there are parts that are really great too. If you have some great WFH tips we’d love to hear about them in the comments! Full Article Process News & Culture