text: House to reform in the center of Salobreña.Salobreña is a coastal town belonging to the Costa Tropical of Granada. Crowned by its 5th century Arab castle, it enjoys an unbeatable location. It is located about 35 minutes from Granada, the city of the Alhambra and just 1 hour from the Sierra Nevada Natural Park where you can enjoy the best snow sports while enjoying the good weather. But that´s not all, this town is only 1 hour and a half from the International Airport of Malaga. With an exquisite cuisine and quiet and beautiful beaches this town may be your best option.The property has 60 meters of built surface. It has two floors in the first one has a porch, living room, kitchen and a bathroom with shower and on the second floor two bedrooms and a large terrace.If you wish to receive more information about this property or arrange a visit, do not hesitate to contact the International Management agents. You can contact by email: email@example.com, by phone: +34 673850925 / +34 673831092, by Skype (username: International Management) or directly in our office located just at the entrance of the Urbanization Monte de los Almendros.


text:
Today is exactly seven seasons before the great winter solstice of 12-21-12. And I am not one of those crazy people out there that thinks all these weird things about it and is taking it very literally or whatever. It is certainly not the end of the world, but I do believe that there is a very powerful spiritual significance to that date as a symbolic date of the time in history that we are in that is very, very crucial. I call it the Great Re-reversal. You know, 12-21-12. It is like reversal, right? Symbolically, even in the numbers. You know, divine order is represented by number 1, and then the human order by number 2. But when divine order comes first, human order has its place, and it is wonderful and in harmony. But then, when the ego takes over and the human order takes precedence over divine order, then you have human history over the last few thousand years. But, the Great Re-reversal is about to take place and coming back to right alignment with divine order, taking first place in which human order then has its rightful place.
So, anyway, it is all symbolic, and it is not all going to happen on one day two years from now. I think that is rather naďve to think that, but rather, it is a symbolic date just saying, okay. This year, this decade, and this century, this millennium would be a nice time to make that shift, you know? And it starts now. We don't have to wait. We start it now. So today is exactly seven seasons before that beautiful, symbolic date, and it is an opportunity to practice transforming seven areas of our lives and to practice the seven great practices that lead us to enlightenment and perhaps even practice the traditional seven factors of enlightenment that the Buddha specifically taught.
So I invite you to just—like tonight we are ending our series on the seven chakras, but it begins once again for the next seven seasons, so this is a seven-season practice period. So we have done 10-week practice periods and 21-day practice periods and seven-week practice periods. Now we have a seventh-season practice period. So I invite you to make that commitment today that for the next seven seasons, you will do your best to consistently practice so that you can transform all the different areas of your life so that each of your chakras which represents different parts of you or yourself will all be in harmony with each other all saying yes.
You know, you've heard me say this before. Enlightenment is very easy. All you have to do is say yes to wisdom and compassion, which is what enlightenment is all about, wisdom and compassion. On the other hand, it is very hard because whereas one part of us says yes, another part might say, "I don't know. Maybe. I don't know. Definitely not. Yes. Okay. No. Yes. No. No. Yes." So our practice then is to practice with each part of ourselves, which is symbolized by the seven chakras. Of course there are more, but those are just the seven major areas. But there are minor sub-areas too. We just practice with all of them. We practice in meditation and lovingkindness and live everyday life mindfully with each other collectively with the help of the Buddhas and bodhisattvas, with the help of the earth and the animals and plants and minerals and all beings. We practice so that all of them start to open up and say yes, and one day when they all say yes together, that is enlightenment. And maybe it is enlightenment that lasts for three seconds, but that is great. Three seconds of enlightenment, when everything says yes. And then you kind of go back to okay. Maybe, I'm not so sure. But keep practicing until we always constantly, consistently say yes moment by moment.
So, we start off as part-time Buddhas to full-time Buddhas, right? Part-time enlightenment to full-time enlightenment. So, let this be seven seasons. What if you could be enlightened, even if just for a few seconds, by the end of the seven seasons? What if? So practice with that hopeful, joyful expectancy. Yes, I can do it. Yes, you can. So practice in the next seven seasons and of course, when it is seven months before that date, I will start again. Okay. If you didn't do so well, we will do it again in seven months and then seven weeks before and then seven days. Okay.
But, you know, it is interesting. Last night, Cornell and I and some others were down near San Antonio in the cave without a name where Jodi Roberts and Cornell and others were doing music in the cave. It was so beautiful to be inside in the earth, you know? It was a lot like being in the womb of mother earth, and I actually felt this really powerful earth energy, you know? Maybe it's because there's not all of these human technology waves going all around, because like, you know, we were protected. Cell phones wouldn't even work either, so it was like it was protected, and you could feel just the earth's energy.
So I just have discovered—I don't know the name it is called, but there's a certain frequency that the earth vibrates, pulsates, this very, very powerful frequency that you can't hear with the human ear, but it is what keeps animals and humans psychologically healthy. Because they did an experiment. They put these people in a room that was completely sealed for a few days so that that wavelength, it could not be heard by the brain. I mean, it couldn't be felt. And they started to go crazy because you need that hum from the earth. You need that connection to the earth's song, the earth's music to be strong. That's really nice.
So, celebrating spring equinox, we are also celebrating our oneness with the earth. We are returning to the mother. And there is a wonderful chant: Returning, returning, returning to the mother of us all. And that is what is happening. We are returning to the mother, and we are remembering who we are in our connection to the cosmos, to the stars, to the planets, to the moon, to the sun, to everything. So our enlightenment is not only enlightenment about our human condition. It is also enlightenment about the earth and our oneness with the earth. It is about enlightenment with the whole universe and with all creatures, all beings. It is not just enlightenment about emptiness and the infinite. It is enlightenment about just this right here, right now. This breath, this step, this heartbeat.
So today I am making a recommitment to the bodhisattva path, the path of enlightenment for all beings, and you know, I was taking a walk with a friend a few days ago in Austin, and then we stopped and meditated for 20 minutes on the grass. It was so beautiful outside, and you know, it is nice to meditate in a nice safe environment in an enclosed room with no mosquitoes, but you know, there's something very powerful when you can also meditate out in nature. It is very, very powerful. So anyway, after that meditation, this thought arose—and usually the thoughts that arise at the end of meditation are very, very from my heart. Unlike the thoughts I have near the beginning of the meditation, which are like the grocery list and whatever.
But I just had this thought: I am dedicated to your enlightenment. I am dedicated to your enlightenment. And this thought came. It was like, oh. This is my attitude toward every person I meet. Or at least this is my intention to have this attitude with every person I meet: I am dedicated to your enlightenment. And if I can think that thought, if it does not leave very much room to be mad at them or to be agitated with them or to wish they were not there, you know? Or in my way. I am dedicated to your enlightenment. And then as I was meditating on that thought, then I heard the next thought, which was connected, which was: And all beings are dedicated to my enlightenment. With a little parentheses: whether they consciously realize it or not. And then that was like—so I began to practice with that, and I realized if I can practice with that in my interactions every day and even with people who might be annoying to me or irritating to me or don't look like they're trying to enlighten me at all, but at the deepest, truest level, all beings are dedicated to my enlightenment, whether they are consciously aware of it or not.
And so with that attitude then, I realized that everything in the universe is happening for me, not to me. Use that for your mantra. It is not happening to me, but for me. Everything. So that is the meditation, because you don't really feel that or believe that or realize that at first, but it is a practice, so keep practicing that, and eventually you realize yes, everything is happening for me, not to me—meaning it is not against me, but it is for me. Even the unpleasant stuff, because the unpleasant stuff, when you can work with that, it can become—instead of garbage, it becomes compost and turns into fertilizer in a beautiful garden of strength and compassion, wisdom, and energy. But until then, it looks like garbage. That is why we practice. Without practice, it just stays garbage, but with practice, everything can just become compost and fertilizer in the garden of beautiful flowers, everything.
So, what did the Buddha teach as far as the seven factors of enlightenment? The first factor of enlightenment that the Buddha taught is mindfulness. This is the foundation of our practice, and mindfulness has many different meanings. One meaning is awareness, just being aware. I am being aware that I am kind. I'm being aware that I'm not being kind. I am very aware of this step, the feeling of the step. I'm aware that I'm not aware of this step. I'm aware that I've made an intention to meditate, and I'm aware that my thought has wandered, and I'm aware that I'm bringing it back my breath.
So mindfulness means awareness, but it also means nonjudgmental awareness, radical acceptance, just being with things just as they are. And that is a practice. Nonjudgmental awareness. So breathing in and breathing out with the group, someone's cell phone vibrated. It is just vibrating. No judgment. It is just oh, there it is, and here's my breath. Someone just coughed. The sound of the cough, and the feeling of my breath. No judgment. So this nonjudgmental aspect of what mindfulness is is very crucial to our practice, because it is the part of the practice that gives us the strength to radically be with everything without trying to control it or judge it or suppress it.
Audience Member: Amen.
ChiSing: So mindfulness is the foundation of our practice. And then there is investigation. And there is energy, and joy, and tranquility, and concentration. Ooh. Someone was a very good student.
Audience Member: [inaudible]
ChiSing: And equanimity. Okay. Now, what helped me remember this—because I mean, there are so many lists in Buddhism—what help me remember this was to correspond them to the chakras. Of course, they don't exactly correspond, but it is helpful. So the first is the root chakra, foundation, and mindfulness is the foundation of our practice. And then investigation of phenomenon, investigating reality, you know, I think of this as a sexual energy chakra - of investigation. [laughter] The third, the solar plexus, the power chakra, energy, vitality, and then the fourth chakra of the heart, joy energy. It is joyful heart energy. And then peace. All this energy has to like now kind of funnel through the throat to bring it to tranquility, tranquility and peace, and then once it comes together right here at the third eye, deep concentration, samadhi, focus. And see, sometimes people stop there. They're like, "Okay. I am totally enlightened now because I'm totally concentrated." But you know what? There's one more step. Let it all go. Let go of wanting to be enlightened. Let go of wanting to be a Buddha. Like always thinking that you are hot stuff. Let go of your pride, like oh, I reached concentration and samadhi. You have to let that go. Otherwise, you get stuck there. So equanimity, letting go, letting be, liberation. Freedom is another. So, mindfulness—
And by the way, this word joy is different from the word joy with the four heart qualities: love, compassion, joy, and equanimity. That joy is different from this joy. This joy is from the word pitti, whereas the love, compassion through equanimity joy is mudita. And mudita is sympathetic joy. When something good happens to someone else, you just feel sympathetically joyful with them, and it is your own joy, whereas this joy, pitti, is more like blissful, rapturous joy, so blissful, so ecstatic. Ecstatic joy from the heart. So that is a little bit different joy. But all of these are factors of enlightenment, and if we cultivate each of these, they will become a power source that grows more and more energized until full enlightenment.
But if you want to divide them up into categories, mindfulness is balanced, nonjudgmental referee kind of. Everything as it is, the ability just to be with everything as it is. And then the second, third, and fourth factors are more of an energizing kind of energy, right? They uplift and energize your practice, whereas the fifth, sixth and seventh factors are calming, pacifying qualities, right? So basically if you want to break it down to just three, rather than having seven, you just basically need the kind of practices that invigorate your spiritual life and balance it with the kinds of practices that calm and pacify and bring serenity to your practice and life, and of course mindfulness tends to need to be at the center and circumference of all of that to make sure everything is in balance. Because mindfulness is also awareness, so you are aware. A little bit too much of this, and not enough of this. Mindfulness will help you know how to balance your practice. Okay. Awareness.
So, those are the Buddha's seven factors of enlightenment, and then I also wanted to share with you some great practices. As you know, there are different intensities of enlightenment, and I've shared with you before that the initial, easiest stage of enlightenment, all of us can attain in this lifetime, and maybe we can even attain it in the next seven seasons, so with that in mind, what are these seven practices that can help us attain the first stage of enlightenment? They are talked about in different ways, different numbers, and everything, but I kind of boiled down into seven, because I like the number seven because of the seven chakras and the seven seasons. So let's do that. By the way, I was saying earlier, so I don't forget, when I was in a cave, and then I came out of the cave, I saw the full moon last night, and I thought, it is no coincidence that the spring equinox, which is seven seasons before 12-21-12 happens to have a full moon, as if the universe is saying, "Pay attention. Now is the time," right?
Audience Member: It was a super moon, too.
ChiSing: And the super moon.
Audience Member: It's the closest it's been in 19 years.
Audience Member: Yeah.
ChiSing: See? So, today is very special, and the fact that you are in this room means that you have a special place in the great awakening that is taking place on the planet now, and so we are just one of many gatherings probably today all across the planet of people who are stepping forward. So the great practices are great generosity, great virtue, devotion to the Buddha, devotion to the dharma, devotion to the sangha, and it is also devotion to the five mindfulness trainings. But anyway, I don't want to get into all the details. Basically, it is pretty much common sense stuff. If you can truly devote yourself to the seven practices—you know, it might be five, six, eight, whatever, but it boils down to whatever you understand it to be. If you devote yourself to that, then you can realize at least the first stage of enlightenment. We can do it together. You don't have to do it alone. We can do it together.
So I invite you to make a commitment to—you know, obviously, I'm not asking you to commit to these exact seven things, because I can't even remember how to tell you, but to the spirit of what these represent. And of course every tradition, every religion has a similar set, right? And if you meditate, you will find within your own heart your inner teacher will tell you what that set of practices will be for you, you know? But anyway, in general, it is basically you're committing to the path of the bodhisattva, of wanting to become a Buddha, to become fully enlightened, or even just at least initially enlightened that you can be of service and benefit to all beings.
▲ Return to Top
One Dharma Awakening Heart Dallas Meditation Center is a 501(c)(3) non-profit educational human services organization.
© 2022 Awakening Heart
All rights reserved.

subset: commoncrawl


text:
Plague of Flies Caused By Chicken Poop Descends on Russian Villages
Swarms of the insects have blanketed several Russian towns in the Ural Mountains.
Did a Conspiracy Between the World's Largest Fertilizer Companies Crash the Food Economy?
A new report suggests that a clandestine cartel of fertilizer companies drove food prices so high that they precipitated a crisis that drove 44 million people into poverty.
Turns Out That Using Human Poop to Fertilize Crops Isn't Such a Great Idea
Is it time to reexamine regulations on sewage sludge fertilizer?
Eating Meat Raised on Human-Based Fertiliser Could Be Making Us Infertile
Given the extreme nature of the human diet, it's not surprising that our excreta is not the healthiest product with which to fertilize farm land.
A Huge Algae Bloom Off the Pacific Coast Is Poisoning Shellfish and Sea Lions
Scientists say the combination of especially warm ocean temperatures and large amount of agricultural runoff is contributing to the large — and toxic — bloom.
This Danish Music Festival Wants to Turn Your Piss into Beer
Danish music festival Roskilde has a so-crazy-it-just-might-work plan to "beercycle" your piss into a lovely pilsner that you can drink at a future festival. Golden showers, indeed.
Agricultural Runoff Is Putting Babies and Viagra Users in Danger
High nitrate levels in drinking water—a result of agricultural runoff—is putting Ohio infants and Viagra users at risk of health problems. But that's only the tip of the nitrogen-rich iceberg, as agricultural pollution is costing us $157 billion each...
There's a Downside to All That Greek Yogurt You're Eating
Acid whey, a byproduct from yogurt production, is harmful to rivers and streams but companies are seeking out ingenious ways to limit environmental impacts by repurposing waste.
Turns Out Boring Old Lentils Are Surprisingly Radical
During the 1980s farming crisis, a group of renegade Heartland farmers radicalized conventional agriculture with one surprising crop: lentils.
Organic Farming Isn't Just a Bougie Ideal
It's long been assumed that chemical-intensive conventional farming is the best way to feed large numbers of people. But a new study shows that organic is more than just crunchy: it's productive, too.
UK National Counter-Terrorism Awareness Week Included an Event on Protecting Your Fertilizer From Terrorists
Police visited schools, train stations were leafleted and citizens were told to 'make a plan and stay safe.' Critics have called it scaremongering. But farmers at the launch of the 'Fertilizer Security Five-Point Plan' disagree.
How Horns Filled with Cow Shit Affect the Way I Cook
I grew up in a commune that shared a similar ethos to Rudolf Steiner's social reforms (which included biodynamic farming). As I grew older, I rejected the environment I was raised in, but the moon phases, cow skulls, and farming practices have...


text:
Major Depression (Clinical Depression) Directory
Major depression, also sometimes called clinical depression, is characterized by symptoms that can lead to difficulty working, problems interacting with family and friends, poor sleeping, and more. Treatments involve antidepressants and other therapies. Follow the links below to find WebMD's comprehensive coverage about symptoms of major depression, risk factors, how to treat it, and much more.
Medical Reference
St. John's Wort for Treating Depression
Is St. John's wort a good alternative to antidepressants? Learn more from WebMD about the mood-boosting potential of this common herbal remedy.
Overview: Treatment Choices for Depression
You can treat depression with medication, therapy, exercise, or medical treatments -- or a mix of them. Here's a closer look at your options.
Untreated Depression
Not only is untreated clinical depression unhealthy, but it can rob you of your relationships and work life, and lead to illness and substance abuse. Learn more from WebMD about recognizing the symptoms of depression and getting the help you need.
Depression Glossary
A glossary of terms about depression and other disorders.
Slideshows & Images
Tips for Living Well With Depression
The right exercise, diet, and activities -- even playing with a pet -- can help you recover from depression. Watch this slideshow to see simple things you can do to improve your mood.
A Closer Look at Depression
What is depression? WebMD provides information on symptoms, tests, and treatments for many types of the disorder.
The Truth About Antidepressants
Antidepressants can boost your mood and make everyday life easier. Here's what you need to know.
11 Warning Signs of a Depression Relapse
See some signs depression may be back. Learn when sadness, sleeping habits, irritability, and more may be signs to seek help for depression.


text:
Dallis Faye Solsma was born December 21, 1949 in Hull, IA, the daughter of Dick and Cornelia Solsma. She spent her youth on a farm near Sanborn, Iowa and received her education there as well.
Following graduation from high school, Dallis attended, and graduated from, Pillsbury Baptist Bible College at Owatonna, MN, Mankato State College at Mankato, MN, and Bob Jones University at Greenville, SC. Her passion was teaching – 14 years at Grace Baptist School, Petersburg, VA, 21 years at Morningside Christian School/Siouxland Christian School, Sioux City, IA, and one year in Suriname, South America.
After retirement, Dallis volunteered at a school for missionary children and assisted with homeschooling former student's children in their countries of ministry.
Along with her natural gift of education, Dallis also had a "green thumb". She thoroughly enjoyed many relaxing hours in her flower gardens, tending to the all the different varieties of blooming greenery as well as her pristine lawn; the plants in the house were just as spectacular.
Fabric and textiles was another of Dallis' interests. She worked for several years at Hobby Lobby in the office and on the floor, mainly in the needlework-crafts and fabric-sewing departments, all things she loved to do and was very adept at. She found it rewarding to help customers and answer their questions, teaching them new techniques and the "how-to" for many different products. Her helpful, friendly demeanor gained her many new friends and acquaintances.
On Thursday, September 9, 2021, Dallis passed from this life at Kingsley Specialty Care Center in Kingsley, IA; she was 71 years of age.
Keeping her memory close at heart are her sister and husband, Correne and Paul Van Dyke of Broken Bow, OK; a nephew, Tom Van Dyke of Tulsa, OK; many wonderful cousins; other relatives and a host of dear friends.
Loved ones who have gone before include her parents, Dick and Cornelia Solsma; a brother, Jake; and two sisters: Caroline and Darlene.
A Memorial Service for Dallis will be held at a later date.
Proudly serving the Sanborn, Hartley and surrounding areas.
Our dedicated and supportive staff are here to guide you through this difficult journey. We take pride in doing our absolute best to ensure your needs are met.
401 Main St.Sanborn, IA 51248ph: 712-729-3238fax: email@example.com
830 2nd St. NEHartley, IA 51346ph: 712-928-4238fax: email@example.com
Click here for map and directions to our locations.
> Obituaries
> Pre-Planning
> Grief Support


text:
Shipping, Returns & Warranty
Can we transfer a hot iron for extension from Canada to the U.S.?We try not to. It would be best to ship it directly to the client.
If a client is looking to do a local pick up in Canada how much does order have to be in order to receive free pick up?There is a $5 fee if the order value is below $30
If a U.S. Client is placing an order for extensions, but toupee, topper or wig is in the Florida facility, how much will we charge for shipping?For overnight orders, if order items are located in two warehouses, we need to charge double shipping.DOUBLE SHIPPING COST: $28.00+$18.00:= $46.00For 3 days saver, we will transfer everything to the USA which takes one day, then do the FedEx 2 days from the USA office.
In Florida for local pick up retail clients, How much do we charge as a convenience fee for placing an order and picking up and dropping off package?No $5 manual fee is charged only the $10 pick up fee. No charge for dropping off
What are the shipping options and cost for U.S. Clients to have extensions shipped to them from Canada?The hair extension order to US client on Superhairpieces.com just set to flat rates recentlyFedEx Overnight - $18 FedEx 3 days saver - $12
What is the shipping fee for United States/Canada salon and retail clients when placing a custom order online versus placing their order over the phone?US Salon via phone: shipping is includedUS Salon via the web: shipping is includedUS Retail via phone: shipping is not included, will have to pay 12 dollars for FedEx 3 Day SaverUS Retail via the web: shipping is includedSummary: We only charge shipping for US retail client phone in custom made...
Why so many duplicated address appear under the same clients account and it keeps adding moreWe should always uncheck the "Save to address" option whenever we manually add an order in. Please watch this video https://drive.google.com/file/d/16NAhIiy-Amq3XPZRIR2mD8eWbirVEuZw/view


text:
- Highly Concentrated 3X Strength
- Clinically-Studied CFB + Vasoactive Compounds*
PHYSIOLOGICAL BASIS: "Reactive hyperemia" describes the increase in muscle blood flow that occurs during high-intensity resistance exercise and produces the "pump" associated with increases in muscle size. NITRAFLEX®+ Creatine pre-training formula contains ingredients that in vitro, animal and clinical studies suggest possess properties that may help advanced athletes maximize energy, intensity, vascularity and reactive hyperemia (pumps) during their workouts, and provide long-term support of testosterone and nitric oxide levels in the healthy range when used as directed.*
Unique properties of some of the key compounds in Nitraflex + Creatine:
- 1-Scoop Serving*: NITRAFLEX+C is so potent, only 1 scoop (1 serving) is necessary. Do not exceed 1 scoop in a single 24-hour period. Do not take NITRAFLEX+C within 5 hours of bedtime.
- High Citrulline: Arginine Ratio: Arginine is a proven precursor to nitric oxide (NO), a vasodilator. What most people don't know is that arginine supplementation stimulates the activity of arginase, an enzyme that breaks down arginine. Over time, this may actually result in reduced arginine and NO levels, in turn causing your pre-workout formula to stop working. Research suggests that supplementing with a high ratio of citrulline to arginine may reduce this risk by avoiding overstimulation of arginase.*
- CFB Helps Support Testosterone: In a clinical study, calcium fructopyranose borate (CFB) was shown to increase total and free testosterone within 3 hours of a single dose equivalent to just over 2 scoops of Nitraflex.*† A longer-term study reported an increase in free testosterone by up to 29%.
- Effective Dose of Beta-Alanine*: The clinically-proven performance enhancer beta-alanine was added at a powerful dose that you will feel working following your very first serving. (May promote slight, tingly-sensation).*
- Creatine: Creapure® Creatine provides a superior level of performance for athletes.* Creatine drives increased power output, muscle endurance, and muscle volumization.* Consuming 2g of creatine for 6 weeks significantly increased plasma creatine concentration.†
- Cognitive Enhancers*: NITRAFLEX+C contains unique ratios of scientifically validated compounds that help you remain alert, intense and focused while you're flying from set to set with veins fully dilated and muscles pumped to the extreme. (DMAE)*
Recommended Dosage:
Training days: Day 1: Begin by assessing your tolerance with half a serving of NITRAFLEX®+C mixed with 6 oz. of cold water. Days 2 and beyond: Depending on tolerance, mix 1 serving (1 scoop) of NITRAFLEX®+C with 10 oz. of cold water and consume within 30 minutes before working out.
• Take before martial arts
• Take before powerlifting meets
• Take before long distance runs or intense cardio sessions
• Take before any type of weight training
• Take before competitive sports
• Take anytime extreme energy/focus is needed.
This product is strictly intended for use by healthy persons 18 years of age or older. Each serving (1 scoop) contains 325 mg of caffeine. Do not combine with other caffeine or stimulant- containing products. Do not use if you are pregnant, nursing or trying to become pregnant. Do not use if you are currently unaware of your health status or if you have a medical condition including but not limited to heart, liver, kidney, or thyroid disease, psychiatric or epileptic disorders, high or low blood pressure, cardiac arrhythmia, recurrent headaches, enlarged prostate or glaucoma. Do not use if you are taking prescription or non-prescription medication of any kind including but not limited to MAO inhibitors, anti-depressants, aspirin or non-steroidal anti-inflammatory drugs. Do not use if you are prone to overheating or dehydration. After 8 weeks of use, take 1 week off before resuming use. Discontinue at least 2 weeks prior to surgery or if you experience rapid heartbeat, dizziness, severe headache or shortness of breath. This product contains a chemical known to the State of California to cause birth defects or other reproductive harm. KEEP OUT OF THE REACH OF CHILDREN.
WARNING: This product can expose you to lead, which is known to the State of California to cause birth defects or other reproductive harm. For more information go to www.P65Warnings.ca.gov
Customer Reviews
This website is for informational purposes only. Always check the actual product label in your possession for the most accurate ingredient information due to product changes or upgrades that may not yet be reflected on our web site. These statements made in this website have not been evaluated by the Food and Drug Administration. The products offered are not intended to diagnose, treat, cure, or prevent any disease. If you believe that you may have a disease condition, please consult your healthcare practitioner immediately, and before using any dietary supplement product.Warnings: Keep out of reach of children. As with all dietary supplements, consult your healthcare professional before use. See product label for more information.


text:
High school sports are going to look a lot different than other years due to the ongoing coronavirus.
A shorter season will limit the amount of games that can be played to 14 (only 7 for football), including removing rival games with Northern. Cross country and Volleyball have been delayed until November 4, although it is likely that they will be pushed back more, or even canceled.
Men's Basketball coach Bryan Strickland says he is optimistic about sports starting soon because Governor Roy Cooper is easing restrictions. Athletic trainer Sarah Bell believes that sports will not happen this year until North Carolina move into phase 3, which will lessen restrictions for the number of people allowed at gatherings and the number of people allowed inside.
If Riverside does get sports this year there will be a lot of safety measures, including temperature checks, cleaning of equipment, contact tracing, and even testing. Bell said it is important to have social and emotional outlets for students, but that doesn't outweigh the dangers of the coronavirus this year.
Another concern is that the shorter seasons will lead to more problems with spacing and organizing games because there will be more sports happening at one time and less room to spread people out. Riverside may not be able to accommodate so many lot of sports happening at once. According to NCHSAA guidelines, there can only be 25 people inside and 50 people outside.
Transportation is also an issue. Since students aren't attending school in person, there are no buses. This means students would have to find their own means of transportation, which would not be feasible for many.
"There is no perfect way to do it," Strickland said,"but it's more about that we can play at all, than what we are losing."


text:
Posted on 10/30/2019 by Thomas Wold, DMD
|Your teeth can stain over time from coffee, wine, cigarettes, and other products, which can affect your self-esteem and self-worth. Unfortunately, if you aren't careful, it can cause major problems with your teeth and smile.
Deciding to use over-the-counter Whiting material in place of going and having it professionally done by a dentist can lead to many oral health problems.
Over-the-Counter Teeth Whitening ProductsThere has been a craze of teeth whitening products to hit the shelves. Some better than others. This includes the kinds of toothpaste, gels, mouthpieces in kits, and those squares you notice when someone's used when their pearly whites are just as bleached as their gums.
Over-the-counter whitening products reduce minor stains rather than brownish or major discoloration. These products are cheap to purchase and, while it all may seem easy and convenient, it quickly can lead to tooth damage and other oral issues.
Problems with Excessive Teeth WhiteningWhen using teeth whitening products too much, you may not even notice because it thrills you with that occasional shade of change. Even ADA approved whiteners can burn your teeth. Some other problems when you use too much of a whitening product start with causing your teeth to retain a translucent appearance instead of a white one.
This causes them to appear discolored as well as retain discoloration quickly. The loss of tooth enamel is the most dangerous. When you lose your enamel your teeth are defenseless against bacteria and plaque attacking your teeth. It quickly results in cavities and problems down in your gum line.
Home kits are limited to 6% hydrogen peroxide. Our in-office bleaching provides dental supervision, meaning we can apply mixtures of 30% hydrogen peroxide and sodium bicarbonate. In one sitting, we can reapply the mixture 4-5 times. Your teeth will whiten to a shade that would take 4-6 months carefully doing it at home. It is also will be much safer in the hands of an experienced professional.
Keep in mind that professional whitening services results also last much longer, so you will not need to have whitening treatments done as often. Call us today to schedule an appointment, and we can safely get you to where you are going in a safe and effective manner.


text:
The Sanken 2 Crossguard Saber, from Pach Store, features a standard arsenal of lightsaber sounds including: turning on sound, turning off sound, idle hum, swing sounds, lockup sound (activated by tapping the button twice), and clash sounds (upon impact with something).
EXPLORE SABER SELLERS affiliate links
This article contains affiliate links. If you purchase an item through some links, then SaberSourcing may receive some money at no cost to you. Thanks for supporting current and future content!
Etsy custom sabers, stands, accessories
Entertainment Earth Force FX Elite Obi-Wan Kenobi Lightsaber
Amazon Hasbro Darth Vader Force FX Elite Lightsaber
TRENDING All of the Togruta Jedi: Ahsoka Tano's Species
You can also access a mute function by holding the button for a few seconds before tapping the on button to activate the saber. To restore the sound, turn the saber off and then hold the button for a few seconds until the saber makes a sound. Then tap the on button to activate the saber again.
You can find Sanken 2 Crossguard Saber at Pach Store:


text:
(EHR) Electronic Health Records Software Development
Electronic health records (EHR) software is able to automate all your clinical operations and also digitize and store patient charts and critical information. You are able to track patient demographics, medications, manage test results, collect patient records, disseminate critical information and devise treatment plants, pick immunization dates and carry out diagnoses and do much more with a reliable EHR software development. EHR software application helps doctors or healthcare providers manage patient medical records and automate clinical workflows. They also ensure data safety and security, provide assistance with critical medical decisions, and give access to evidence-based tools for easy health management.
An EHR system does all of the functions that a patient record management software application performs but it goes a few steps beyond that. They are specifically designed to collect and compile all the information regarding an individual's overall health as well as that of the healthcare organization along with critical hospital records. It is not just about the medical aspects but the overall health of the patient and the vast array of technologies and practices pertinent to a healthcare organization.
Custom EHR Solutions To Satisfy Your Demand :Get Free Consultation
Electronic Health Records Software - Move Ahead With Advanced Features
Insights on Information Technology in Healthcare
Get actionable insights from IT perspective on the Healthcare
Physician Software Solutions - Success Stories, Delivered Results
Discover how Zapbuild's innovative solutions in Information Technology are empowering Healthcare businesses.


text:
Tuesday, December 14, 2021
Christmas Wooden Tree
Christmas Wooden Tree
When I was in Pittsburgh in November, my friend that has a store gave me a wooden tree. I didn't do anything with it until last week. I went to my stash of rusty metal things and pulled my bag of Scrabble letters out and the wooden tree became this.
I started off with the scrabble letters. I didn't want to glue them on so I used glue dots. They will keep them on but I can take them off if I want to. The blue chips are from bingo numbers, they are for the free spots.
I added an old rusty hinge and a door knob plate.
At the top I added another know plate and some old sleigh bells.
For the star, I had a 4th of July one and just sprayed painted it. I used a hammered brown paint.
It is a great addition on my lanai.
The post Christmas Wooden Tree first appeared on Eclectic Red Barn.
Labels: Bev@Eclecticredbarn , Christmas decor , Christmas decorations , wooden tree
4 comments :
I love your tree! You were so smart to make the pieces changeable. Great idea.
xo Lisa SReplies
Thank you so much for your sweet comment. Coming from you , that means a lot to me.
My dad made the same tree on a stand for all of us and we started a Jesse tree - each of us making an ornament for everyone's tree ever year (or buying if you lack talent like me).ReplyDeleteReplies
Wow, that is a great idea. What a special gift that keeps on giving.Delete
Have a lovely Christmas.
Subscribe to: Post Comments ( Atom )


text:
After much anticipation, and following an unusual method of selecting bidders by lottery, Colombia has invited eligible bidders to vie for the first components of its ambitious PPP road program valued at some US$26 billion. National state agency ANI has kicked off the program with seven stretches of road that will require US$5.7 billion of investment. The roads total 1,200-km of existing one-lane mountain highways that will be upgraded to two lanes each way. Bidders have five months to submit offers.
Download Sample Issue
PWF Subscription Options
- Public Works Financing - Enterprise-wide Corporate Subscription From: $450.00 / month with 1 month free trial
- Public Works Financing - Individual Corporate Subscription From: $120.00 / month with 1 month free trial
- Public Works Financing - Government or Non-profit Subscription $60.00 / month with 1 month free trial


text:
I've searched a lot on the Internet (I consider my google-fu quite good) for some well written tutorial about writing simple "RESTful" microservices in Go with Go kit.
I was not able to find any...
Examples from the Go kit repository are good, but documentation is dull, IMHO.
I then decided to buy this book, called Go Programming Blueprints, 2nd Edition which is quite good, but has only two chapters dedicated to Go kit (one for actual development of a microservice and one for the actual deploy) and I don't really care for now about gRPC, which examples on chapter 10 of the book are also implementing. To much scaffolding code if you ask me :P
Sooo, I decided to give back something to the community and write a tutorial, in order to "learn by doing". This tutorial will be heavily inspired by the book mentioned above, and probably could be improved in many ways.
Feel free to give a feedback!
You will find the link to the complete source code for the microservice on my blog, the original source of this article. coding.napolux.com
What is Go kit?
From the Go kit README.md:
Go kit is a programming toolkit for building microservices (or elegant monoliths) in Go. We solve common problems in distributed systems and application architecture so you can focus on delivering business value
Go is a great general-purpose language, but microservices require a certain amount of specialized support. RPC safety, system observability, infrastructure integration, even program design — Go kit fills in the gaps left by the standard library, and makes Go a first-class language for writing microservices in any organization.
I don't want to discuss much about it: I'm too new to Go to have a strong opinion. The community is of course divided in the ones that like it and the ones that don't. You can also find a good article about differences in frameworks for Go microservices here.
What are we going to do?
We are going to create a very basic microservice that will return and validate a date... The goal is understand how Go kit works, nothing more than that. You can easily replicate all the logic without Go kit, but I'm here to learn, and so...
I hope you'll have a glimpse and a good starting point for your next projects!
Our microservice will have some endpoints.
- One
GETendpoint at
/statusthat will return a simple answer that will confirm that the microservice is up and running
- One
GETendpoint at
/getthat will return today's date
- One
POSTendpoint at
/validatethat will receive a date string in the
dd/mm/yyyy(the only existing date format if you ask me, take this USA!) format and validate it according to a simple regex...
Again, you will find the link to the complete source code for the microservice on my blog, the original source of this article. coding.napolux.com
Let's start!!!
You should have Golang installed & working on your machine. I've found the official download package working better (I had some problems with the env. vars) than the Homebrew installation on my Macbook.
Plus, you should know the Go language, I'm not going to explain what a
struct is, for example.
The napodate microservice
Ok, let's start by creating a new folder in our
$GOPATH folder called
napodate. This will also be the name of our package.
Put a
service.go file there. Let's add our service interface on top of the file.
package napodate
import "context"
// Service provides some "date capabilities" to your application
type Service interface {
Status(ctx context.Context) (string, error)
Get(ctx context.Context) (string, error)
Validate(ctx context.Context, date string) (bool, error)
Here we're defining the "blueprint" for our service: in Go kit, you have to model a service as an interface. As described above, we will need three endpoints that will be mapped, going forward, to this interface.
Why are we using the
context package? Read https://blog.golang.org/context:
At Google, we developed a context package that makes it easy to pass request-scoped values, cancelation signals, and deadlines across API boundaries to all the goroutines involved in handling a request
Basically, this is needed because our microservice should be made from the beginning to handle concurrent requests and a context for every request is mandatory.
You don't want to mix up stuff. More on this later in the tutorial. We are not using that much now, but get used to it! :P We now have our microservice interface.
Implementing our service
As you probably know, an interface is nothing without an implementation, so let's implement our service. Let's add some more code to
type dateService struct{}
// NewService makes a new Service.
func NewService() Service {
return dateService{}
// Status only tell us that our service is ok!
func (dateService) Status(ctx context.Context) (string, error) {
return "ok", nil
// Get will return today's date
func (dateService) Get(ctx context.Context) (string, error) {
now := time.Now()
return now.Format("02/01/2006"), nil
// Validate will check if the date today's date
func (dateService) Validate(ctx context.Context, date string) (bool, error) {
_, err := time.Parse("02/01/2006", date)
if err != nil {
return false, err
return true, nil
The newly defined type
dateService (an empty struct) is how we are going to group together the methods of our service, while "hiding" somehow the implementation to the rest of the world.
NewService() as a constructor for our "object". This is what we'll call to get an instance of our service, all while masking the internal logic as good programmers should do.
Let's write a test
A good example of how
NewService() is used can be seen in the test for our service. Go on and create a
service_test.go file.
package napodate
import (
func TestStatus(t *testing.T) {
srv, ctx := setup()
s, err := srv.Status(ctx)
if err != nil {
t.Errorf("Error: %s", err)
// testing status
ok := s == "ok"
if !ok {
t.Errorf("expected service to be ok")
func TestGet(t *testing.T) {
srv, ctx := setup()
d, err := srv.Get(ctx)
if err != nil {
t.Errorf("Error: %s", err)
time := time.Now()
today := time.Format("02/01/2006")
// testing today's date
ok := today == d
if !ok {
t.Errorf("expected dates to be equal")
func TestValidate(t *testing.T) {
srv, ctx := setup()
b, err := srv.Validate(ctx, "31/12/2019")
if err != nil {
t.Errorf("Error: %s", err)
// testing that the date is valid
if !b {
t.Errorf("date should be valid")
// testing an invalid date
b, err = srv.Validate(ctx, "31/31/2019")
if b {
t.Errorf("date should be invalid")
// testing a USA date date
b, err = srv.Validate(ctx, "12/31/2019")
if b {
t.Errorf("USA date should be invalid")
func setup() (srv Service, ctx context.Context) {
return NewService(), context.Background()
I made the tests more readable, but you should really write them with Subtests, for a more up-to-date syntax.
Tests are green (!) but focus for a second on the
setup() method. For every test we return an instance of our service using
NewService() and the context.
Our service will be exposed using HTTP. We are now going to model the accepted HTTP requests and responses. Go and create a file called
transport.go in the same folder of
package napodate
import (
// In the first part of the file we are mapping requests and responses to their JSON payload.
type getRequest struct{}
type getResponse struct {
Date string `json:"date"`
Err string `json:"err,omitempty"`
type validateRequest struct {
Date string `json:"date"`
type validateResponse struct {
Valid bool `json:"valid"`
Err string `json:"err,omitempty"`
type statusRequest struct{}
type statusResponse struct {
Status string `json:"status"`
// In the second part we will write "decoders" for our incoming requests
func decodeGetRequest(ctx context.Context, r *http.Request) (interface{}, error) {
var req getRequest
return req, nil
func decodeValidateRequest(ctx context.Context, r *http.Request) (interface{}, error) {
var req validateRequest
err := json.NewDecoder(r.Body).Decode(&req)
if err != nil {
return nil, err
return req, nil
func decodeStatusRequest(ctx context.Context, r *http.Request) (interface{}, error) {
var req statusRequest
return req, nil
// Last but not least, we have the encoder for the response output
func encodeResponse(ctx context.Context, w http.ResponseWriter, response interface{}) error {
return json.NewEncoder(w).Encode(response)
You will find the link to the complete source code for the microservice on my blog, the original source of this article. coding.napolux.com
A bit of code if you ask me, but you'll find comments in the
transport.go in the repo file that will help you navigate it.
In the first part of the file we are mapping requests and responses to their JSON payload. For
statusRequest and
getRequest we don't need much, since no payload is sent to the server. For
validateRequest we are going to pass a date to be validated, so here is the
date field.
Responses are pretty straightforward too.
In the second part we will write "decoders" for our incoming requests, telling the service how he should translate requests and map them to the correct request struct.
get and
status are empty, I know, but they're there for the sake of completeness. Remember, I'm learning by doing...
Last but not least, we have the encoder for the response output, which is a simple JSON encoder: given an object, we'll return a JSON object from it.
That's it for transports, let's create our endpoints!
Let's create a new file
endpoint.go. This file will contain our endpoints that will map the request coming from the client to our internal service
package napodate
import (
// Endpoints are exposed
type Endpoints struct {
GetEndpoint endpoint.Endpoint
StatusEndpoint endpoint.Endpoint
ValidateEndpoint endpoint.Endpoint
// MakeGetEndpoint returns the response from our service "get"
func MakeGetEndpoint(srv Service) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (interface{}, error) {
_ = request.(getRequest) // we really just need the request, we don't use any value from it
d, err := srv.Get(ctx)
if err != nil {
return getResponse{d, err.Error()}, nil
return getResponse{d, ""}, nil
// MakeStatusEndpoint returns the response from our service "status"
func MakeStatusEndpoint(srv Service) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (interface{}, error) {
_ = request.(statusRequest) // we really just need the request, we don't use any value from it
s, err := srv.Status(ctx)
if err != nil {
return statusResponse{s}, err
return statusResponse{s}, nil
// MakeValidateEndpoint returns the response from our service "validate"
func MakeValidateEndpoint(srv Service) endpoint.Endpoint {
return func(ctx context.Context, request interface{}) (interface{}, error) {
req := request.(validateRequest)
b, err := srv.Validate(ctx, req.Date)
if err != nil {
return validateResponse{b, err.Error()}, nil
return validateResponse{b, ""}, nil
// Get endpoint mapping
func (e Endpoints) Get(ctx context.Context) (string, error) {
req := getRequest{}
resp, err := e.GetEndpoint(ctx, req)
if err != nil {
return "", err
getResp := resp.(getResponse)
if getResp.Err != "" {
return "", errors.New(getResp.Err)
return getResp.Date, nil
// Status endpoint mapping
func (e Endpoints) Status(ctx context.Context) (string, error) {
req := statusRequest{}
resp, err := e.StatusEndpoint(ctx, req)
if err != nil {
return "", err
statusResp := resp.(statusResponse)
return statusResp.Status, nil
// Validate endpoint mapping
func (e Endpoints) Validate(ctx context.Context, date string) (bool, error) {
req := validateRequest{Date: date}
resp, err := e.ValidateEndpoint(ctx, req)
if err != nil {
return false, err
validateResp := resp.(validateResponse)
if validateResp.Err != "" {
return false, errors.New(validateResp.Err)
return validateResp.Valid, nil
Let's dig a bit into this... In order to expose all our service methods
Status() and
Validate() as endpoints we are going to write functions that will handle the incoming requests, call the corresponding service method and depending on the response will build and return a proper object.
These methods are the
Make... ones. They will receive the servuce as argument, whe then use a type assertion to "force" the request type to a specific one and use it to call the service method for it.
After these
Make... methods, that will be used in the
main.go file, we will write the endpoints to comply with the service interface
type Endpoints struct {
GetEndpoint endpoint.Endpoint
StatusEndpoint endpoint.Endpoint
ValidateEndpoint endpoint.Endpoint
Let's make an example:
// Status endpoint mapping
func (e Endpoints) Status(ctx context.Context) (string, error) {
req := statusRequest{}
resp, err := e.StatusEndpoint(ctx, req)
if err != nil {
return "", err
statusResp := resp.(statusResponse)
return statusResp.Status, nil
This method will allow us to use the endpoints as Go methods.
The HTTP server
For our microservice we need an HTTP server. Go is pretty helpful with this, but I chose https://github.com/gorilla/mux for our routes since its syntax looks so clean and concise, so let's create a little cute HTTP server with mappings to our endpoints.
Create a new file called
server.go in your project.
package napodate
import (
httptransport "github.com/go-kit/kit/transport/http"
// NewHTTPServer is a good little server
func NewHTTPServer(ctx context.Context, endpoints Endpoints) http.Handler {
r := mux.NewRouter()
r.Use(commonMiddleware) // @see https://stackoverflow.com/a/51456342
return r
func commonMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Add("Content-Type", "application/json")
next.ServeHTTP(w, r)
The endpoints will be passed to the server from the
main.go file, and
commonMiddleware(), not exposed will take care to add specific headers to every response.
And finally, our main.go file
Let's wrap up! We have a service with endpoints. We have an HTTP server, we just need a place where we can wrap up everything and of course it's our
main.go file. Put it into a new folder, let's call it
package main
import (
func main() {
var (
httpAddr = flag.String("http", ":8080", "http listen address")
ctx := context.Background()
// our napodate service
srv := napodate.NewService()
errChan := make(chan error)
go func() {
c := make(chan os.Signal, 1)
signal.Notify(c, syscall.SIGINT, syscall.SIGTERM)
errChan <- fmt.Errorf("%s", <-c)
// mapping endpoints
endpoints := napodate.Endpoints{
GetEndpoint: napodate.MakeGetEndpoint(srv),
StatusEndpoint: napodate.MakeStatusEndpoint(srv),
ValidateEndpoint: napodate.MakeValidateEndpoint(srv),
// HTTP transport
go func() {
log.Println("napodate is listening on port:", *httpAddr)
handler := napodate.NewHTTPServer(ctx, endpoints)
errChan <- http.ListenAndServe(*httpAddr, handler)
Let's analyze this file together. We declare the
main package and import what we need.
We use a flag to make the listening port configurable, the default port for our service will be the classic
8080 but we can lunch it with whatever port we wont thanks to the flag.
What follows is the setup of our server: we create a context (see above for an explanation of what a context is) and we get our service. An error channel is also setup.
Channels are the pipes that connect concurrent goroutines. You can send values into channels from one goroutine and receive those values into another goroutine.
We then create two goroutines. One to stop the server when we press
CTRL+C and one that will actually listen for incoming requests.
Look at
handler := napodate.NewHTTPServer(ctx, endpoints) this handler will map our service endpoints (do you remember the
Make... methods from above?) and return the correct answer.
Where did you see
NewHTTPServer() before?
As soon as the channel receives an error message, the server will stop and die.
Let's the service!
If you did everything correctly, by running
go run cmd/main.go
from your project folder, you should be able to curl your microservice!
curl http://localhost:8080/get
curl http://localhost:8080/status
curl -XPOST -d '{"date":"32/12/2020"}' http://localhost:8080/validate
{"valid":false,"err":"parsing time \"32/12/2020\": day out of range"}
curl -XPOST -d '{"date":"12/12/2021"}' http://localhost:8080/validate
Wrapping up
We created a new microservice from scratch, even if it's super simple, it's a good way to start using Go kit with the Go programming language.
Hope you enjoyed this tutorial as much as I did!
You will find the link to the complete source code for the microservice on my blog, the original source of this article. coding.napolux.com


text:
Product focuses include vehicle specific trailer hitches, electric trailer brake controls, trailer breakaway systems, fifth wheel hitches, gooseneck hitches & couplers, trailer weight distribution systems, cargo management, custom designed and standard electrical harnesses, trailer jacks, couplers and more. Key brands include: Bargman, Bulldog, Draw-Tite, Fulton, Hidden Hitch, Pro Series, Reese, ROLA, Tekonsha, Tow Ready and Wesbar. The item "Rola Vortex Trailer Hitch Mount 1 1/4 Cargo Basket Carrier-300 Cap" is in sale since Wednesday, November 11, 2020.
This item is in the category "eBay Motors\Parts & Accessories\Car & Truck Parts\Exterior\Towing & Hauling". The seller is "hitchmart" and is located in CA FL IN KS TX .This item can be shipped to United States.


text:
Update 2016-10-05
This article has been updated to reflect some changes to tooling that fixes some of the problems mentioned below.
Living Life on the "Edge"
I'm currently building an Android app to remind me to take healthy breaks from starting at computer screens. For extra funsies, it's built on the cutting edge of current fashionable Android technologies. Of particular note today, we have:
- MVP architecture using Dagger 2 for dependency injection, and
- Kotlin, the JVM language by JetBrains.
I've run into a few roadblocks along the way, and since we're using shiny new tools, there's fewer than usual online solutions addressing them. Hopefully these tips might help someone out there who's doing something similar.
At the time of writing, I'm currently using Dagger v2.2 with Kotlin v1.0.2. I have just discovered that Dagger 2.4 is already stable and that Dagger 2.5 was commited to master a few hours ago, so I'll update this again when I've looked into whether using one of these instead of v2.2 addresses some of the issues that follow.
Update 2016-10-05: I have released the app that inspired this article. You can check it out on GitHub as a reference when setting up your own project.
kapt, the Kotlin annotations processor
Most of the tutorials on (Java) Dagger integrations rely on Hugo Visser's Android Studio Annotations Processor. This is used with Dagger as follows:
apply plugin: 'com.neenbedankt.android-apt'
buildscript {
repositories {
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
android {
dependencies {
apt "com.google.dagger:dagger-compiler:$rootProject.ext.daggerVersion"
compile "com.google.dagger:dagger:$rootProject.ext.daggerVersion"
provided 'javax.annotation:jsr250-api:1.0'
However, when using these annotations in Kotlin files we should be using the built-in Kotlin annotation processor instead (source: Stack Overflow):
// apply plugin: 'com.neenbedankt.android-apt' - no longer necessary
buildscript {
repositories {
dependencies {
// classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' - no longer necessary
android {
kapt {
generateStubs = true
dependencies {
// apt "com.google.dagger:dagger-compiler:$rootProject.ext.daggerVersion" - use kapt instead
kapt "com.google.dagger:dagger-compiler:$rootProject.ext.daggerVersion"
compile "com.google.dagger:dagger:$rootProject.ext.daggerVersion"
provided 'javax.annotation:jsr250-api:1.0'
Multiple JSR 250 Dependencies
provided 'javax.annotation:jsr250-api:1.0' line might have stuck out to you.
Developers haven't seemed to have agreed on a source for the JSR-250 Java annotations API used by the Dagger compiler. I've encountered at least three Gradle artifacts in various projects:
javax.annotation:javax.annotation-api:1.2- used in Mosby's Dagger sample; in Facebook's Fresco library
org.glassfish:javax.annotation:10.0-b28- used in Google's MVP+Dagger example and damianpetla's Kotlin+Dagger example
javax.annotation:jsr250-api:1.0- per codepath's Dagger 2 article
So, what gives? A rudimentary Google search suggests that all of these were implemented as part of Sun/Oracle's GlassFish project. I didn't find what I was looking for in jCenter, so I found what I believe are the original uploads on good maven central. This is what I found:
- Description: "Common Annotations for the JavaTM Platform API"
- URL (from metadata): https://jcp.org/en/jsr/detail?id=250
- Last updated: 2013
- Main
.jarfilesize: 42311 bytes
- Includes developer in metadata: Rajiv Mordani, the JSR-250 lead at Sun (and now at Oracle).
- Description: "Common Annotations for the JavaTM Platform API version ${spec.version} Repackaged as OSGi bundle in GlassFish"
- URL (from metadata): None
- Last updated: 2011
- Main
.jarfilesize: 20542 bytes
- Includes developer in metadata: No
- Notes:
- Manifest includes in header: "Copyright 1997-2008 Sun Microsystems, Inc."
- Lists #3 below as an optional dependency!
- OSGi (official site; Wikipedia) is a standard for packaging Java components.
- Description: "JSR-250 Reference Implementation by Glassfish"
- URL (from metadata): https://jcp.org/aboutJava/communityprocess/final/jsr250/index.html
- Last updated: 2007
- Main
.jarfilesize: 5848 bytes
- Includes developer in metadata: No
According to the community page (which is the same URL provided by #1), the original release was in 2006, with maintenance releases in 2009 and 2013 (n.b.: another maintenance release is scheduled for next month, Jul 2016!). So it looks like #1,
javax.annotation:javax.annotation-api:1.2 implements the latest version of this spec, whereas #3 implemented the first stable version almost ten years ago.
For what it's worth, I gave all of them a whirl with Dagger and didn't run into any issues. This is a good enough comparison for my purposes short of peeking inside the JARs and comparing them. Since #3 is the smallest and seems to contain the bare minimum necessary for Dagger, I've taken to using that package.
JetBrains' Kotlin Android Extensions plugin provides some great features on top of the standard tooling. For those who haven't used it, it can create "synthetic properties" properties from your XML layout files so that you don't need to make
findViewById() calls and cast them to assign your instance variables. These calls are the bane of Android developers everywhere, many of whom use ButterKnife to fight back:
Traditionally in Java:
public class MyActivity extends Activity {
private TextView mTextView;
public void onCreate(Bundle savedInstanceState) {
mTextView = (TextView) findViewById(R.id.textview);
// Now you can use mTextView:
mTextView.setText("Hello, reader!");
With ButterKnife (Still in Java):
public class MyActivity extends Activity {
@BindView(R.id.textview) TextView textView;
public void onCreate(Bundle savedInstanceState) {
// Now you can use textView:
textView.setText("Hello, reader!");
With kotlin-android-extensions:
import kotlinx.android.synthetic.main.activity_main.* // Import all views in R.layout.activity_main
class MyActivity: Activity() {
override fun onCreate(savedInstanceState: Bundle) {
// textview is already available
textview.text = "Hello, reader!"
Dagger 2.2 Compatibility
Update 2016-10-05: This seemed to be a problem with the Kotlin plugin rather than with Dagger itself. Code minify works fine with Kotlin v1.0.3 and the current version 1.0.4.
Nice, right? However, I couldn't for the life of me make my view classes work with both Dagger and Kotlin. I started out with an Activity that used Dagger for injecting its presenter. Then, I tried factoring out those pesky
findViewById() calls and using the synthetic properties directly, only to run into various build errors. Either the compiler couldn't import the synthetic layout "
Unresolved reference kotlinx," or component classes generated by Dagger "
references unknown class X," where X is the component interface that Dagger used to generate it. Okay.
This was oft accompanied by the sad error message:
:app:transformClassesWithNewClassShrinkerForDebug FAILED
Error:Execution failed for task ':app:transformClassesWithNewClassShrinkerForDebug'.
Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.
The fix:
buildTypes {
yourBuildType {
// ...
minifyEnabled false
// ...
Voila. No more errors. Hope that gets fixed soon, though.
Misleading solutions
While trying to fix the problem above, Googling pointed me at fairly recent Stack Overflow answers like this one that suggested the following:
- Move the
buildscriptkotlin classpath dependencies to the app module's
apply plugin: 'kotlin-android-extensions'and add
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"in the gradle file
In fact, the official docs do say you need to apply the
kotlin-android-extensions plugin. We should do this. Better safe than sorry, right?
However, I think it's worth noting that these tips did not fix the conflicts I ran into above with my current setup (Android Studio 2.2-preview3/Dagger 2.2/Kotlin 1.0.2), and that after turning minify off the standard setup (i.e.
buildscript in project root
build.gradle; no explicit mention of
kotlin-android-extensions) everything worked perfectly. Again, this may vary based on what tool versions you are using.
Update 2016-06-15: Using Dagger 2.4 did not solve this problem.
Update 2016-10-05: In Kotlin plugin v1.0.3 and up, the automatic project setup works without modification.
inject() requires the exact class you're injecting into
Lastly, my "d'oh!" moment.
One of my Activities implemented an interface for interaction with its presenter:
class TimerActivity : AppCompatActivity(), TimerContract.TimerView {
override lateinit var presenter: TimerContract.UserActionsListener
class TimerPresenter
@Inject constructor(override var view: TimerContract.TimerView)
: TimerContract.UserActionsListener {
I wanted to inject the presenter in
TimerActivity using Dagger, so I implemented a module and component for it.
import dagger.Component
modules = arrayOf(TimerModule::class)
interface TimerComponent {
fun inject(timerView: TimerContract.TimerView)
class TimerActivity : AppCompatActivity(), TimerContract.TimerView {
override lateinit var presenter: TimerContract.UserActionsListener
override fun onCreate(savedInstanceState: Bundle) {
// Inject away!
It type-checks and everything! But
presenter still wasn't getting injected. Did you see the problem?
inject() type checking for a
TimerActivity that conforms to the
TimerContract.TimerView interface, it turns out that the method much match the type of the injecting object exactly.
import dagger.Component
modules = arrayOf(TimerModule::class)
interface TimerComponent {
// fun inject(timerView: TimerContract.TimerView) Nope!
fun inject(timerActivity: TimerActivity) // Yup!
Total noob move, I'm sure, but hey, now I know.
Helpful Resources
I probably wouldn't have figured out how to make everything work without the help of the following resources – props to the makers:
- damianpetla's kotlin-dagger-example
- Google's example MVP+Dagger architected ToDo App
- soflete's Android with Dagger example
Update 2016-10-05: I now have my own working Kotlin/Dagger app on GitHub.
Thanks for reading, and catch you next time!


text:
Do you have an Oculus Rift and a friend with PlayStation VR? If you have a Ubisoft game, you'll soon able to play together.
Ubisoft's virtual reality titles will soon work across platforms. The company's Eagle Flight game, which lets you soar over an abandoned version of Paris, will be the first to support cross-platform play, letting gamers on PSVR ($158.15 at Amazon) , Oculus Rift , and HTC Vive team up or play against each other.
Eagle Flight is currently available on PSVR and Oculus Rift; it's slated to reach HTC Vive ($864.99 at Amazon) on Dec. 20. Check out the trailer below.
Ubisoft's upcoming multiplayer VR experiences Werewolves Within and Star Trek: Bridge Crew will both support cross-platform play when they launch on Dec. 6 and March 14. respectively.
"Making our VR titles cross-platform has been a goal of ours from the start," David Votypka, senior creative director at Ubisoft studio Red Storm, said in a statement. "Our games feature a strong multiplayer experiences, so letting friends play together regardless of which headset they own will enhance the social nature of our games and let them be played the way we envisioned."
Meanwhile on the VR gaming front, if you love 2BA 2K you can now experience it in virtual reality. 2K last week launched NBA2KVR Experience for PSVR, HTC Vive, and Samsung Gear VR ($57.47 at Amazon) . The $14.99 title lets you try your hand at mini-games like a "three-point shootout, a speed and accuracy skills challenge, and the buzzer beater countdown."
Get Our Best Stories!
Sign up for What's New Now to get our top stories delivered to your inbox every morning.
This newsletter may contain advertising, deals, or affiliate links. Subscribing to a newsletter indicates your consent to our Terms of Use and Privacy Policy. You may unsubscribe from the newsletters at any time.
Thanks for signing up!
Your subscription has been confirmed. Keep an eye on your inbox!Sign up for other newsletters


text:
Josh Frydenberg is dressing up class politics as responsible economicsJul 29, 2020
Treasurer Josh Frydenberg says the current economic situation requires 'supply-side' reforms like those undertaken by the Thatcher and Reagan governments in the 1980s. The relevant lessons from those years are really rather different, as are the current needs of Australian society.
Facing a prolonged Coronavirus health crisis and a long period of recession ahead – maybe a deepening depression – big thinking is surely needed about how to drive a recovery and what form it should take. To start on a point of agreement, job-creation clearly needs to be high on the agenda.
The official economic projections coming from the Treasury and the Reserve Bank look woeful. Unemployment is being kept in check only by policy measures like JobKeeper that the government has already signalled it will be scaling down. But does that really require turning the clock back to Thatcher and Reagan?
They governed at a very different time, when inflation was the most prominent concern in the capitalist nations and organised labour still had considerable strength. The situation is very different now. Inflation is not an issue: indeed most economists, including those at the Reserve Bank, think that it is now too low, making deflation a contributory factor to the economic stagnation that began long before COVID-19 appeared. Considerable labour market reform has taken place in the intervening years too and unions have much less workforce coverage. The big societal challenges that now have to be linked with job creation are dealing with climate change and economic inequality.
To try to pump up the engine of economic growth without regard to environmental constraints is out-dated and reckless. Job-creation therefore needs, wherever possible, to have a green tinge if not a deep green hue: otherwise the jobs will not be sustainable in the years ahead.
Job-creation policies also need to be implemented in tandem with strategies to reduce inequalities in incomes and wealth. In part, this entails a simple economic logic: poor people usually spend most of any additional income they get, thereby giving greater stimulus to aggregate demand than rich people who tend to save much more. Socially, more equitable nations also do better, as shown by a mass of social science research on physical and mental health, crime, educational outcomes, social mobility and social cohesion.
Policies like those pursued by Thatcher in the UK and Reagan in the USA during the 1980s created more deeply entrenched inequalities, the effects of which are still resonating. They focussed on making it harder for workers to take industrial action to get higher wages, while creating more favourable conditions for the owners and managers of capital to increase their profits and accrue capital gains. Stronger regulation for labour: deregulation for finance and business.
These were the policy prescriptions flowing from the then-fashionable 'supply-side economics', seeking to supplant the Keynesian theories that had underpinned previous policies of macroeconomic management.
Arthur Laffer, a previously little-known academic, was one of the supply-side economists who sought to give some theoretical legitimacy to Reaganomics. He famously claimed that cutting taxes on the rich would give so much stimulus to economic growth that the government's total tax take would increase. In other words, lower taxes would produce more revenue. He is said to have originated his theory by drawing a diagram (subsequently known as the 'Laffer curve') on a paper table napkin while sharing a restaurant meal with some friends. The renowned political economist J.K. Galbraith later said, with characteristic wit, that it would have been better had Professor Laffer used that piece of tissue paper for a rather different purpose.
Concurrently, the Reagan and Thatcher governments did stimulate particular forms of economic growth through distinctive forms of public spending: Reagan's administration spent prodigiously on military and space programs, for example, while Thatcher's surge of spending on the police force was a small but significant illustration of the 'free market: strong state' dualism within neoliberalism.
The major legacy was more deeply divided societies. This was the period during which 'trickle down economics' – the belief that if you make the rich even richer we will all benefit – attained its pejorative reputation. Do we really want to revisit that divisive, class-based agenda?
We should not be surprised that the current Australian government's leaders are predisposed to it. Having to implement massive Keynesian stimulus when the coronavirus crisis struck has been contrary to all they previously espoused and they would love to be back on a more neoliberal track. Pushing for more industrial relations reform is their natural first port of call, but income tax cuts are looming as an equally significant test. Frustrated by their inability to reduce the company tax rate for big business because of insufficient support for their legislation in the Senate, they remain firmly committed to pressing ahead with the second and third stages of their income tax cuts. Indeed, there has been much talk of bringing them forward. The effect would be to reduce the progressivity in the tax scale, a process that will deliver much the biggest tax cuts to the highest income households.
Promises of tax cuts generally have popular appeal, but many people must now be wondering whether now is really the time. For a government that has talked so long and loudly about the need to get the federal budget back into surplus, it seems bizarre to be cutting taxes when government spending has surged to an all-time high. Is the ghost of Arthur Laffer walking the Treasury corridors? Are we looking at Laffer curve 2.0, raising the expectation that cutting tax rates (especially at the top end) will increase economic growth so much that total tax revenue actually rises and the net budget situation improves?
Being bombarded with ideologies that dress up class politics as responsible economics is unhelpful at the best of times, and these are surely the worst of times. As a society, what we need now is some honest effort to develop a realistic, equitable and sustainable basis for economic recovery. We would learn more useful things from studying the lessons of President Franklin Roosevelt's new deal policies during the Great Depression – or from Australian nation-building and post-war reconstruction in the late 1940's – than from Thatcher and Reagan.
In a previous article on this site, I described the characteristics of what a coherent alternative policy package could look like – including industry, trade, incomes and workforce re-skilling policies – to restructure the economy for the energy, environmental and social conditions of the decades ahead.
Just to illustrate this different economic philosophy, consider a practical issue like housing. The problem of housing affordability has grown relentlessly during the period that neoliberalism has been in vogue. Giving a massive boost to the supply of social housing could create many jobs and meet social needs at a time when homelessness is now a looming prospect for very many people. Building social housing would be more directly job-creating than subsidising home renovations and it would tackle a major source of inequality, while embedding environmental, energy and 'circular economy' principles in the design process. Cooperative models of ownership and management could be encouraged too, especially since the usual business models are evidently floundering.
"Never let a crisis go to waste" is a familiar theme, but the Treasurer's recent attempt to re-birth some of the far right's agenda needs to be seen for what it is. It won't contribute positively to jobs, but it would make our society more unequal and it would be yet another missed opportunity to address climate change and sustainability. While it is not surprising that old songs on the conservative play-list are getting a renewed hearing, the Australian people deserve better.


text:
BOMBA Afro-Puerto Rican Treasure
The bomba is the most popular music and
dance style found on the island of Puerto Rico. The style has strong
African roots and it flourished among the black slaves working in the sugar
cane plantations in the 18th century, and in particular in coastal towns
such as Loiza Aldea. Traditionally the rhythm is performed using bomba drums; barrell shaped hand drums similar to the Cuban conga drums but
slightly shorter, cua; a pair of sticks on the side of a
drum or log drum, and a single maraca.
This rhythm was incorporated into the conjunto or band set up in the early 1950s by Rafael Cortijo. In this format
the congas have substituted the traditional bomba drums, the cuá pattern is played on a woodblock or side of a drum, a cowbell
pattern played by the timbal player has been added, and the Puerto Rican
scraper known as güicharo is often incorporated. In its
traditional form the rhythm is performed with up to three bomba drums. Two
play supporting patterns; the burleador and seguidora, while
the highest or requinto improvises throughout. The cuá plays a one bar pattern, while the maraca marks the basic pulse. The performance also incorporates dancers and singers. Performance arrangement: commence with burleador,
followed by seguidora, cua, maraca and finally the requinto.
hand drum key: O= Open Tone P=Palm
F=Fingers M=Muffled Tone S=Slap
Requinto: 'Solo'
Specially recommended recordings featuring bomba are:
▪ Caliente=Hot
Puerto Rican & Cuban Musical Expression
In New York (New World RecordsNW244-2)
▪ Modesto Cepeda
Raices De Bomba Y Plena (MCB 9504)
▪ Rafael Cortijo
Cortijo Y Kako Y Sus Tambores (Ansonia
Cortijo Y Su Combo (Seeco Tropical STR
▪ Kako
Kako Y Su Orquesta (TR 00900 LP)
▪ Los Pleneros De La 21 & Conjunto Melodia
Puerto Rico, Puerto Rico Mi Tierra Natal (Shanachie
▪ Mon Rivera & Willie Colon
There Goes The Neighborhood (Vaya
▪ Carlos 'Patato' Valdez
Understanding Latin Rhythms Vol.1 (LPV
© Alex Pertout. All rights reserved. No part of this article
may be reproduced without prior written permission from the author. This article was first published in Drumscene magazine.


text: Friendly Monster Posted by SteveKimes / February 4, 2014 / Leave a comment This piece of art by Troy reminds me of a show I watched when I was a kid called Sigmund and the Sea Monsters. Sigmund, despite his tough Norse name, was a kind sea monster who wanted to get to know kids. Very friendly. His family were all jerks. It was kind of Casper on the beach. But, just like Casper, when people first saw Sigmund, they'd be scared. But after a while, when they got to know him, they'd realize that he's just like them. Sometimes good, sometimes bad, but a decent kid. That's the way it is when people work at Anawim. At first, a number of the people, especially the bigger guys, look tough and mean. But they are just people, just like everyone else. They've got some good, some bad and pretty decent people. I don't understand why people want to treat them like criminals. As if they were dangerous. They are cool people. Leave a comment Click here to cancel reply. Name * Email * Website Comment Add Comment


text:
Input Data :
Data set = `4/5, 6/8, 13/11, 2/10`
Number of elements `= 4`
Objective :
Find the LCD of given unlike fractions?
Solution :
lcd (5, 8, 11, 10) = ?
Find the prime factors for all denominators
5 = 5 = 5
8 = 2 x 2 x 2 = 23
11 = 11 = 11
10 = 2 x 5 = 2 x 5
The Product of all the factors with highest powers
LCD = 23 x 5 x 11 = 2 x 2 x 2 x 5 x 11
Equivalent Fractions with LCD
4/5 = 352/440, 6/8 = 330/440, 13/11 = 520/440, 2/10 = 88/440
LCD calculator uses two or more fractions, integers or mixed numbers and calculates the least common denominator, i.e. the smallest positive integer which is divisible by each denominators of these numbers. It is an online mathematical tool specially programmed to find out the least common denominator for fractions with different or unequal denominators.
It is necessary to follow the next steps:
To replace unlike fractions by equivalent like fractions, it is necessary to find a common denominator.
A problem of finding the common denominator of two or more fractions is the same as the problem of finding the least common multiple (LCM) of the denominators of these fractions.
If the denominators of the given fractions are equal to each other, than the LCD of these fractions is the denominator of these fractions.
If a number is a multiple of two or more integers, it is called a common multiple. The smallest of the common multiples of a set of integers is called the the least common multiple (LCM).
|Find LCD for Fractions
|LCD for 1/2, 1/4
|LCD for 1/2, 1/3
|LCD for 2/3, 5/9
|LCD for 2/3, 4/9, 5/6
|LCD for 2/3, 3/4, 4/5
|LCD for 2/3, 4/5
|LCD for 2/3, 1
|LCD for 2/3, 3/5, 4/7
|LCD for 2/3, 2
|LCD for 2/3, 6/7
|LCD for 3/4, 6/7, 9/8
|LCD for 3/2, 5/4
|LCD for 3/4, 1/2
|LCD for 3/4, 5/6
|LCD for 3/6, 2/12
|LCD for 4/5, 2/3, 5/7
|LCD for 4/5, 5/6, 7/15
|LCD for 4/3, 8/9, 3/5
|LCD for 5/6, 15/8
|LCD for 5/2, 8/9, 11/14
|LCD for 5/9, 4/15, 1/45
|LCD for 6/5, 8/25
|LCD for 6/8, 4/32
|LCD for 8/9, 10/27, 16/81
|LCD for 8/51, 19/85
|LCD for 9/2, 3, 9/4
|LCD for 9/14, 3/7
|LCD for 147/64, 30/44
In order to find the LCD, firstly we convert all integers and mixed fractions into fractions.
Then we find the LCM of the denominators. The result is the LCD and each fraction should be written as an equivalent fraction with the same LCD.
In some problems it is required to evaluate algebraic expressions. These problems can be solved by finding the least common denominator of two or more rational expressions fractions. For example, the least common denominator of rational expressions fractions $\frac{1}{4xy}$ and $\frac{1}{2x^2y}$ is $4x^2y$.In general, the least common denominator can be a number, a variable or a combination of numbers and variables. To find LCM two or more numbers, please refer to LCM calculator. Here, we will show how to find the LCD of $\frac{4}{5},\frac{6}{8},\frac{13}{11},\frac{2}{10}$ using the prime factorization. Therefore, it is necessary to find the LCM(5, 8, 11, 10).
Since every integer greater than 1 can be factored uniquely into primes, we obtain:
$$\begin{align}&5=5={\color{blue}5^1}\\ &8=2\times 2\times 2={\color{blue}{2^3}}\\ &11=11={\color{blue}{11^1}}\\ &10=2\times 5={2^1\times\color{blue}{5^1}}\end{align}$$ By multiplying the greatest power of 2, 11 and 5 form these factorizations, the LCM of 5, 8, 11, 10 is equal to the LCM of $\frac{4}{5},\frac{6}{8},\frac{13}{11},\frac{2}{10}.$ It means,
In problems of adding, subtracting, or comparing fractions, we usually use the least common denominator. For instance, to compare rational numbers we use the LCD to rewrite them with a common denominator. As with fractions or mixed numbers, the LCD is very important in working with rational expressions. Many real life situations can be expressed by adding two or more rational expressions. So, the LCD can be useful here. Using the LCD is also important for solving some rational equations.
Practice Problem 1:
Find the common denominator of $\frac{1}{72}$ and $12\frac{1}{8}$.
Practice Problem 2:
Three persons, $A,B$ and $C$, paint a room together in 5 hours. The person $A$ paints the room alone in 9 hours. The person $B$ paints the room alone in 11 hours. Find the time needed for the person $C$ to paint the room.
The common denominator calculator, formula, step by step calculation, real world problems and practice problems would be very useful for grade school students (K-12 education) to learn how to find the LCD of two or more fractions, integers or mixed numbers. It can help in many math problems, particularly in adding, subtracting, or comparing fractions.


text:
We know that "avoid the ghetto" isn't really the name of the new Microsoft patented GPS technology—but it's a moniker that's stuck thanks to the app's job: Keep pedestrians from walking into crime-ridden areas. Back when I first wrote about the tech, it seemed a really terrible idea. Some commenters (sorta) managed to convince me otherwise.
But here's the real question: Could it even work?
Not really, says John K. Roman of the District of Columbia Crime Policy Institute. At least not here in D.C. Because first you have to strike out the kinds of crime that don't affect the target audience: People on foot. That means theft, vehicular crime, and burglary are out. So then there's murder and sexual assault. But in D.C., the vast majority of occurrences of both crimes happen between people who know each other. So, Roman says, there simply isn't much data there that would be relevant for pedestrians who don't know anyone. He writes:
That leaves assault and robbery (taking something from a person by force or threat of force). There are about 4,000 assaults and 3,000 robberies a year in DC, so these seem like good candidates for our app.
Checking out a map of 2009 data, the part of DC with the most assaults is in the 3rd police district, an area known as Adams Morgan and Columbia Heights. (Maps of previous years' data show the same hot spot.) These places are not the poorest in the city, nor are they the areas with the most minorities. What makes Adams Morgan and Columbia Heights so dangerous? That's where the bars are heavily clustered.
Where are robberies most concentrated? Same place! And, within that place, the "hottest" hot spots are near Metro stations and along the busiest commercial corridors (where the most bars are).
In other words, walking through a poor or minority neighborhood doesn't automatically make you more susceptible to serious personal crime. Walking late at night through a heavily populated commercial area, especially one with lots of impaired people, does.
If the app works the way he describes, then the nickname is definitely all wrong. And it's hard to believe that Microsoft will recommend that walkers avoid Adams Morgan and Columbia Heights. For my initial grouchiness about the app, I'm chastened. But also vindicated! Since it probably won't work anyway.
Photo by Darrow Montgomery


text:
F.A.Q. – Recovery
- Can I specify different retention policies for base backups and WAL segments?
- Yes, definitely. It might happen for instance that you want to keep base backups of the last 12 months and keep WALs for Point-In-Time-Recovery for the last month only.
- Does barman manage recovery?
- Yes. With barman you can recover a PostgreSQL instance on your backup server or a remote one.
- Does barman manage recovery to a specific transaction or to a specific time?
- Yes. With barman you can recover a PostgreSQL instance and specify a transaction ID or a time for targets. It is just a matter of adding an option to your recover command.
- Does barman support timelines?
- Yes, barman handles PostgreSQL timelines for recovery.
- Does barman manage remote recovery?
- Yes.
- Does barman manage tablespaces for recovery operations?
- Yes. You can also relocate a specific tablespace to another directory.
- Does barman support flashbacks?
- Currently no. However, we will get there. Adding a time machine feature to PostgreSQL is feasible with barman and requires a bit of coding. Once again, if you need this feature and are in the position to sponsor it, please contact us.
- During recovery, does barman allow me to relocate the PGDATA directory? What about tablespaces?
- Yes. When recovering a server, you can specify different locations for your PGDATA directory and all your tablespaces (if any). This allows you to setup temporary sandbox servers. This is particularly useful in case you want to recover a table that you have unintentionally dropped from the master by dumping the table from the sandbox server and then recreating it in your master server.


text:
WAN-IFRA just released a report—Digital Transformation at Aller Media Finland—that looks into the successful transformation of a legacy print publisher into a diversified business group.
The publisher, Aller Media Finland, is a part of the Aller Media Group that was founded in 1873. Through most of its existence, Aller Media Finland has been a publisher of weekly and monthly magazines.
Since the beginning of the decade, the company saw a steady decline in revenue from subscriptions and newsstand sales. This was due to consumers moving to digital media outlets and social media platforms.
This prompted the publisher to pivot to digital, and explore new business opportunities. It deployed a two-pronged strategy: reactive (short-term turnaround) and proactive (invest for future growth).
"Act before circumstances force us to do so"
The reactive strategy included discontinuing unprofitable print products and moving onto digital publishing platforms. The company also sold all of its monthly magazines even though they were profitable at the time.
Aller Media's Director of Media Business Elina Schüller says, "We wanted to act before we were forced to make other drastic changes. All of those magazines were still profitable, but we saw that they didn't have a long future, and within the next couple of years some of them wouldn't be profitable anymore."
At Aller, we prefer to act before circumstances force us to do so. So we sold them and got a reasonable price, instead of waiting two or three years and getting much less.Elina Schüller, Director of Media Business, Aller Media Finland
The sales were also undertaken to raise funds that could be invested in the publisher's digital transformation.
The digital transformation of Aller Media began with converting content created for print products and distributing them electronically. The content was enhanced with multimedia and interactive features, and shared on social media.
The next step involved replacing the print-centric systems for generating, processing and distributing content. This was done by creating a centralized design team called the Design Desk.
It comprises all the art directors and graphic designers in the company, who had earlier been assigned to individual print products. The move reduced duplication of effort and ensured availability of designer resources for all products, since the team could allocate tasks according to their level of priority.
The biggest change was the implementation of a Content Management System (CMS). The new platform enabled employees to use a single interface for creating and publishing content, independent of the platform on which it was to be distributed.
Aller Media continues to own and print two weekly magazines: Seiska, an entertainment magazine and Katso, a TV program guide. According to the report, together they have 1.6M readers.
The diagram below illustrates Aller Media Finland's transformation in brief. It does not necessarily reflect the sequence in which the various measures were taken.
"We needed to look five years down the road"
Aller's proactive strategy was aimed at ensuring long-term growth by expanding into completely new areas. It allowed the company to move beyond its core business and enter new markets.
We needed to look five years down the road, to see where we were going and prepare for that.Elina Schüller, Director of Media Business, Aller Media Finland
The publisher took its first step in this direction with the acquisition of Suomi24 in 2010. It is Finland's largest online community and offers dating, discussion forums, chat and email.
Suomi24 has nearly 2M registered users (Finland's total population is 5.5M). It has more than 3M visitors each month, posting 6M messages annually – 16,500 posts every day. The data collected contains invaluable insights into the online behavior of a substantial percentage of Finland's populace.
The acquisition helped Aller gain a leading position in data-driven advertising and create new businesses. Using smarter data, the company has:
- found a way to serve its readers better with more personalized content,
- created more value for advertisers, and
- developed new offerings outside its core business.
The data enables more effective marketing, since messages can be communicated at the right time and via the right channel. Those data skills are one reason our weeklies [magazines] are doing extremely well – we have an excellent understanding of our readers' behavior.Pauli Aalto-Setälä, CEO, Aller Media Finland
In 2017, the publisher spun its data operations off into a newly formed subsidiary called Data Refinery. The division aims to attract corporate customers, both in Finland and abroad, who want to commercialize their data for sales, and develop their existing business with data.
First we commercialized our own data with good results, and now we are providing this service to others.Laura Avonius, VP, Innovation & Internationalisation at Data Refinery
The company has been learning from data and developing tools for better analysis. Its media sales team's offerings have evolved from print-only to online ads such as banners and other display ads as well as programmatic, rich media, pre-targeting, re-targeting and customized solutions.
Aller Media Finland has also created another service unit, Aller Ideas, to serve other businesses with their content strategies. The publisher leverages its journalistic expertise and data to provide relevant solutions.
One of Aller Ideas' primary goals is to become the leading social media services provider to businesses. To achieve that, Aller acquired Finnish marketing communications agency Dingle, which specializes in social media services for companies.
Aalto-Setälä said at the time, "We have already differentiated ourselves by owning Finland's biggest online community, Suomi24, in addition to our magazine brands. Through this acquisition, we will expand our expertise to all other aspects of social media, and we will help companies better serve their customers online."
"Turned the revenue graph into a 'hockey stick' form"
Anton Jolkovski, Managing Editor at WAN-IFRA comments, Aller Media Finland "has undergone a remarkable transformation in about seven years' time." Today 40% of its revenues come from digital operations.
According to the report, Aller Media is the leading publisher of magazines and newspapers in the Nordic region, with a total weekly circulation of 2.7M issues. In 2017-18 the group revenue was 4.542B Danish krone (about 608M euros at today's exchange rate).
We haven't stared at the statistics, because we know the numbers don't mean money. But we have turned the revenue graph into a 'hockey stick' form, and it has continued to rise for many months rather than peaking and then declining.Elina Schüller, Director of Media Business Aller Media Finland
Aalto-Setälä commented, "We have transformed ourselves from a magazine company to a diversified business group with a data agency and marketing companies, but we are still in the media business with our weekly magazines. So we are quite different than we were seven years ago when we started this transformation."
He added, "In five to 10 years, I strongly believe we will have even more digital platforms. The overall trend is toward platforms and technology, and we are building more meeting points where people can connect and be informed and entertained. I believe in a platform-based scenario for the future of our company."
Download the full report from WAN-INFRA:
Digital Transformation at Aller Media Finland


text: Qingdao is situated at the foot of Lao Shan Mountain and on the shore of the Yellow Sea. Its architecture presents a characteristic European style, as it was a colony of Germany and Japan for thirty three years, up to 1949. So the city's construction on the whole is a combination of European and traditional Chinese styles. Qingdao has two nicknames: "Oriental Switzerland" and "Asian Geneva". Qingdao, like a Shandong girl, is open and frank. The air is very clean in the city and the streets are very clean too.