text:
Medical Exercise
Re-Imagining Aging
Submitted by Jennifer Salter on Thu, 09/29/2016 - 09:51
I recently turned 46 (!), and in celebration of this I decided today to write about different aspects of aging, by highlighting several older adult athletes to demonstrate what is possible when strength and cardiovascular fitness is maintained as one gets older. A person does not need to be an athlete, or even aspire to be one, to appreciate the examples I provide. In addition to the examples I provide below, I encourage you to take a look at an article in the IDEA Fitness Journal which profiled the work I have done with my beloved client Arnie for the last 20 years. Arnie, previous downhill skier extraordinaire, now avid golfer, is as fit and active at age 75 as he has ever been. Click here to read.
At a CAN-FIT-PRO conference I attended several years ago, I was very lucky to hear three lectures by Dr. Len Kravitz. Dr. Kravitz is an internationally recognized exercise physiology professor from the University of New Mexico, and every year at CAN-FIT-PRO he presents brand new research from various areas of exercise science. One of his lectures was on exercise and longevity. The most important take-home message from his lecture is that our muscles do not know age, they only know disuse. What does this mean? By maintaining an exercise program throughout the lifespan, especially one that includes weight training, aging as we know it simply does not happen.
An article published in 2008 (Shephard et al) reviewed 30 studies conducted since 1990 with male and female subjects aged 64 and older, specifically on the relationship of aerobic activity, aging and VO2 max. Men's aerobic capacity tends to drop 5 ml/kg/min each decade starting at age 20 (from a high of 45 ml/kg/min), and women's 5 ml/kg/min each decade starting from age 35 (from a high of 38 ml/kg/min). Once VO2 max declines to 18 ml/kg/min for men and 15 ml/kg/min for women, a person loses functional independence – the ability to carry out activities of daily living. The striking finding of this research review is that after 8-10 weeks of low- to moderate-intensity aerobic exercise for 30 minutes per day 3-5 times per week, VO2 max improved 12.9%! This is equivalent to gaining back 12 years of vigor. Although low to moderate intensity exercise provided great benefit, higher intensities provided even greater health benefits by increasing VO2 max by 25%. This means that a very fit person in their 70s can have better functional capacity than an unfit person in their 30s.
Like aerobic capacity, muscle strength and function is also critically important for aging well. In fact, starting around age 30 it is not just the muscle itself that is lost, it is also the motor neurons in the spine that control muscle fibres. Research from McMaster University has showed that masters runners in their 60s had just as many motor units (muscles fibres plus motor neurons) as people in their 20s. Even track athletes with an average age of 80 demonstrated that octogenarian runners had 40 per cent more motor units than healthy non-athlete 80 year olds. Moreover, the signals from their brains to their muscles were also more robust – suggesting that they were able to make better use of the muscle they had.
While no one can cheat death, one can most certainly hope for a minimal period of illness later in life. Modern medicine now allows individuals with serious medical problems to live long lives. But, if the average life expectancy for a woman in Canada is 81 years, isn't it better to live out most of that time in good health, rather than disability?
Olga Kotelko – What Makes Olga Run?
Olga Kotelko was not your average 90-something woman. She not only looked and acted like much younger, she held over twenty-three world records in track and field, seventeen in the 90-95 year old category. Olga lived a rugged farm childhood as the 7th of 11 children born to Ukrainian immigrant parents, an unhappy marriage, single parenthood, and a long career as a beloved school teacher. Then something remarkable happened: the Vancouver resident, who engaged in recreational slo-pitch baseball, hiking, and bowling took up track and field - at 77. She quickly gained international fame, competing well into her 80s and 90s. In her last years, she won hundreds of medals in events such as the high jump, long jump, triple jump, shot put, javelin, hammer and discus throws and the 100-metre, 200-metre and 400-metre sprints. She submitted to extensive study by exercise physiologists, and researchers at McGill determined that she functioned at age 93 like a "very healthy 70 year old".
Olga advocated a life of moderation, exercise, and positive attitude. "I choose not to let the dark stuff have a negative effect on me," she told her biographer. She died in 2014 at the age of 95, having competed at an event the weekend before her death.
Ernestine Shepherd - Older Adult AND Body Builder
Ernestine Shepherd, age 80, was a model in Baltimore for years, but at age 56 she and her sister Mildred Blackwell went to try on swimsuits and found their bodies were out of shape. Ernestine characterized herself as a "well-padded school secretary". They decided to start taking aerobics classes. Shortly thereafter, Ernestine's sister began to compete in bodybuilding shows under the name Velvet, and Ernestine followed under the name Ernie. However, her sister died shortly after of a brain aneurysm. Devastated and in mourning, Ernestine stopped going to the gym. After a few months, a friend suggested that her sister would have wanted her to continue what they had started. Part of the very reason Ernestine continued to be a competitive body builder for many years was in tribute to her sister. For several years, in fact, she was the world's oldest competitive female body builder.
Today, Ernestine may be retired from competitive body building but she still wakes at 4am daily, and spends her days lifting weights, running, and working as a personal trainer at her gym. She runs 80 miles a week and trains for marathons. She says has never been happier. As a personal trainer, she works primarily with senior women five days a week and "live(s) to inspire senior women to reach their physical potential."
Paul Reese – Go East, Old Man
I first read about Paul Reese in Runner's World Magazine in 1999. At the time, he was 81 years old, and was not about to let age or physical problems get in the way of his active lifestyle as a long distance runner. He suffered from asthma and a bad back, but that was better than the prostate cancer and radiation treatments he had endured 11 year earlier. Three years after the treatments, at the age of 73, he decided to make a statement about aging and exercise by running 3102 miles across the United States in 124 consecutive days. In addition, from 1992 through 1997, Reese made runs across the individual US states until he had logged all 50. His wife accompanied him in a motor home. He died in 2004.
"We got a little excited – and a little scared – everyday," admitted Reese, who chronicled his runs with a series of books including Ten Million Steps and Go East Old Man. "We were always wondering what was around the next corner or over the next mountain."
Reese offered four guiding principles that he learned from his adventures: (1) maintain your sense of humour, you'll need it; (2) find your dream and live it; (3) live life intensely; and (4) always have an agenda.
Sister Madonna Buder – Iron Nun
Sister Madonna Buder, an 86-year-old Roman Catholic nun who lives in Spokane, Washington, has competed in 350 races since taking up running at the age of 48. This includes nearly 20 appearances at Ironman Canada. Sister Buder started running on the advice of a priest. "Running was a salvation for me. I was going through a very difficult period when I started running. When I got out there to run, you're lost in this huge globe of greenery and various things in nature that make you realize how minimal your insignificant problems really are." Running gave way to triathlons, and now one of the reasons Sister Buder enjoys participating is to "perpetuate the age group for people to see it is possible [to be active like this at my age]".
Although Buder considers herself akin to a "China doll" who has been chipped away at every so often, injuries have not stopped her from resuming her activities. This includes a return to triathlon after suffering a broken hip and being told by the doctor that she would never walk again. She was recently inducted into the US Triathlon Hall of Fame.
Betty-Jean McHugh – Breaking the Boundaries
Betty-Jean – or B.J. – McHugh celebrated her 57th wedding anniversary in an unconventional manner: by running a half-marathon. She would have done a full marathon, but she had already done three of those in the preceding six months. McHugh, 87, does not just defy aging, she has declared it obsolete. She runs four days per week usually at 5:45 am, and when she is not running she cycles, practices yoga, and weight trains at the gym. Along the way, she has picked up more than a dozen Canadian and world records, including the fastest marathons for women ages 75 and 80. Some of the women she trains with are half her age. She ran the Honalulu Marathon in 2015 and obliterated the world record for women 85-89.
McHugh started running when she was 55 to pass the time while her daughter, a competitive swimmer, trained at the pool. She ran a 10k and then did her first marathon. "I thought, 'I'll never do another one. I just have to get it out of my system.'" However, she was hooked and has since run 14 marathons in addition to countless other races of varying distances. A running partner says of McHugh said, "She never complains. She's bright and cheery and positive. She has a big breakfast every morning. She likes to read for an hour each day. She makes everything from scratch."
Although McHugh waxes philosophical by saying that her staying power is probably due to good luck and genetics, she says that always setting goals has helped tremendously. "I just always had a goal, something I wanted to do. You can always do something. Go to a gym or walk. You don't need to run."
This retired nurse can inspire the rest of us on what staying active, having goals, and a bit of good luck might bring.
Ha Tu Thanh. Olga Kotelko, a Canadian track star well into her 90s, has died. The Globe and Mail, June 25 2014.
Hutchinson, A. The Science of Running. Canadian Running Magazine, July/August 2016.
Breaking the Boundaries: The Incomparable Betty-Jean McHugh. iRun, August 2009
McGinn, D. Nun on the run (and the bike, and in the water). The Globe and Mail: November 8, 2010
Runners World Magazine: Long Running. February 1999.
Shephard, RJ (2008). Maximal oxygen intake and independence in old age. British Journal of Sports Medicine Online First, April 10, 2008, pp 1-19.
If you can imagine it, you can achieve it; if you can dream it, you can become it.
Exercise and Brain Power
Tight lateral hip? Try this stretch
Steps for Preventing Low Back Pain
Exercise Programming for Fibromyalgia
Special Considerations for Older Adult Athletes
Burn Calories and Live Longer Without "Exercising"
Finding the "Sweet Spot": Reflections on Chronic Pain
Weight Management - For the Long Term
How to Protect Your Bone Density
Common Running Injuries, and How to Avoid Them
Fitness Trends That Come and Go: From the Observation Deck
If you want to change one thing, walk more
Sit to Stand Test Predicts Mortality in Seniors
More About Jennifer
Lifting Weights Will Change Your Life!
Successful, Long Term Weight Loss is Possible
Treating Chronic Pain With Exercise
Enhance Your Weight Training Workout
Important Steps for Preventing Low Back Pain
Exercise: Powerful Protector of Mental Health
Older Adult Athletes - Case Study
Inactivity: More Deadly Than Smoking
Older Adult Athletes and Aging - Not What You Would Expect
An Active Lifestyle Pays Off, in More Ways than One
How to Exercise, Without Exercising!
The Best Time to Plant a Tree...Is Now!
Get Better Results from Weight Training
Inactivity Physiology: Be Active - and Also Less Inactive
Running Injuries, and How to Avoid Them
Two Roads Diverged in a Wood, and I Took the One Less Traveled
Exercise to Manage Osteoarthritis
Shin Splints are No Fun
Running Increases Life Expectancy
A Sub-Elite, Middle Aged Runner Learns to Embrace Moderate Intensity Exercise!
Using Exercise to Manage Mental Health Issues
Laugh of the Day
"Fitness" Age is a Much Better Predictor of Longevity Than Chronological Age
Weight Gain Carries Risks, No Matter What Your Weight
Exercise Programming for Breast Cancer Patients
Depression - Thinking Outside the Box
Exercise and a Better Brain
Exercise and Academic Improvement
Strength Training Reduces Risk of Type 2 Diabetes
Why Everyone Should Lift Weights
Inactivity Physiology - What Is It?
Multiple Short Workouts vs. Single Longer Session
Hypertension – The Epidemic of High Blood Pressure
Exercise Delays Adverse Effects of Aging
Case Study: Bariatric Surgery
It's NEAT: Burn Calories Without Exercise
Fitness and Aging – Use It Or Lose It
The Blue Zones - Lessons for Living Longer from Those Who Have Lived the Longest
Don't Resist Resistance Training
Catching Kayla
The Most Important Thing You Can Do to Prevent Low Back Pain
Harness the Healing Power of Physical Activity
Depression Treatment May Reduce Risk of Heart Disease
To live longer, replace one hour of sitting with walking
Solutions for Having No Time To Exercise
How Diet May Impact Alzeimer's Disease
Text Neck is Becoming an Epidemic, and Can Wreck Your Spine
Broken Neck, to Long Distance Runner
Inspirational Quote of the Day
Case Study: Considerations for the Older Adult Athlete
The Outdoor Exercise/Pollution Quagmire
Exercise Vital Sign for Clinical Practitioners
Habit of Sucessful "Weight Maintainers"
Exercise After Knee Replacement
Osteoarthritis – Pain, or an Opportunity to Live a Different Life?
Bone Density: Myths and Truths
Realistic Weight Management Strategies
Which is Better: Walking or Running?
Stress, Exercise, and Mental Health
Hardwired for Laziness
Weight Training Appear Key to Reducing Belly Fat
Exercise Earlier in Life Increases Brainpower in Middle Age
Top 10 Benefits of Hiring a Personal Trainer
Hip Fractures Increase One-Year Mortality in Older Women
Have a great weekend! Be active!
Aerobic Exercise and Strength Training for Older Women: What is the Optimal Starting Dose?
Joy and Achievement
Core Stabilization for Runners
Sit-to-Stand Test Predicts Mortality in Older Adults
The Benefits of Active Transportation
Oh, the Vagaries of Middle Age...
Exercise Slows Progression of Alzheimer's Disease
Walking Lowers Breast Cancer Risk
Paul Reese – Ten Million Steps
The Hazards of Too Much Sitting
Something Nice
Aerobic Power and Functional Independence in Older Adults
Good Posture: The Holy Grail
The Obesity Arthritis Link: As Solid as Previously Thought?
Getting Ahead...
Does Workout Intensity Matter?
Heart Disease: What You Need To Know
How to Get Results From Weight Training
Lack of Exercise Twice as Deadly as Obsesity
Two Tips for Strength Training
It's "NEAT": Lose Weight Without Exercising
Walking Reduces Breast Cancer Risk
Exercise Increases Life Expectancy, and Vigorous Exercise Has a Greater Impact
The Day You Are Born
Soft Drinks: Pop or Poison
Is Weight Gain at Menopause Inevitable?
Improve Poor Sleep
Regular Jogging Shows Dramatic Increase in Life Expectancy
Older Adults Should Double Protein Intake to Build Muscle
Ten Ways Exercise Can Reduce the Risk of Heart Disease
Laugh For Today
Scientific team sounds the alarm on sugar as a source of disease
Exercise May Reduce Negative Effects of Excessive Sitting
Common Running Injuries
Exercise and Manual Therapy Work Better for Hip and Knee Osteoarthritis Than Conventional Medical Approaches
Running Keeps You Younger
All Types of Exercise Lead to Increased Mental Alertness
Penne With Asparagus and Cashews
Something nice from a client
My Half Marathon!
Tzvika's Granola
Exercise, Stress, and Mental Health
Something Very Nice...
Roasted Beets With Maple Dressing
The Benefits of an Active Lifestyle
Exercise and Breast Cancer
Exercise and Breast Cancer Treatment
Chicken with Mango Sauce
Mexican-Inspired Chicken
Pinery Provincial Park - one of my favourite places in the world
Weight Management for the Long Term
Vitamin D and Alzheimers Risk
Family Execise
Nobody trips over mountains
Preventing Weight Gain Over Time
Running Reduces Risk of Death, Regardless of Duration or Speed
Utilizing Exercise to Improve Mental Health
Roasted Red Pepper Soup
Therapeutic Lifestyle Change
The Benefits of Weight Training
Something Funny
Smooth Gazpatcho With Greens
Sedentary Lifestyles Main Cause of Obesity
How Things Turn Out Best
The Obesity-Arthritis Link – As Solid as Previously Thought?
Sarah Reinertsen: Inspiration!
Exercise Improves Stroke Outcomes
Vigorous Exercise and the Flu
Exercise Slows Progression of Alzheimer's, and Improves Stroke Outcomes
Women, Strength Training, and Diabetes
Exercise Improves Sleep...But it Takes Time
Exercise Prevents Aging
Sugar: Not So Sweet
My Race In Israel!
Sitting and Quality of Life
Inactivity Kills More People Than Smoking
Marathon Training Could Help, Not Harm, the Heart
Preventing Bone Loss
Vigorous Exercise in 20s Leads to Sharper Middle Age
Improving the World
Exercise Helps You Live Longer
The Blue Zones
Runners of Magnitude
Vegan Stir Fry Noodle Sauces
If You Feel Better, Others Will, Too
The Best Time to Plant a Tree
Depression: Thinking Outside the Box
Outdoor Running Lament
Transitioning to Decrepitude? Try a Trainer
Strength Training and Older Women
American College of Sports Medicine Guidelines on Cardiovascular Exercise
Omega 3s Linked to Better Sleep in Children
My Redemptive Half Marathon!
Get a good night's sleep
idea heath and fitness association
©2016 - lifeline personal training


text:
Q: printf format parameter contain undefined escape character #include <stdio.h>

int main()
{
   printf("Hello\c!\n");
   return 0;
}

Output : Helloc!
So , when \[some_undifined_symbol]  appeared in printf 's format string, it just ignore the \ ?

A: \c is not an escape sequence that is already defined, but it's better to avoid using it because it's reserved:

C99 §6.11.4 Character escape sequences
Lowercase letters as escape sequences are reserved for future standardization. Other
characters may be used in extensions.

A: You have the following escape sequences defined for c:

*

*\'  single quote

*\"  double quote

*\\  backslash

*\0  null character

*\a  audible bell

*\b  backspace

*\f  form feed - new page

*\n  line feed - new line

*\r  carriage return

*\t  horizontal tab

*\v  vertical tab

*\nnn    arbitrary octal value

*\xnn    arbitrary hexadecimal value

redpajama_set_name: RedPajamaStackExchange


Zikry I forgot to sit Masuaku, so we started to replay the game with his suspension and got DC'd at me up 1-0 in the 20'. Tanke said he was having ISP issues so he told me to take the first result.
Managers Bronc and Viper haven't met with this big of stakes since the two faced off in the Season 5 Coppa Tradizione Final. Much like that match, this one saw a late goal force extra play, and ultimately Bronc's side slammed in the game-winner. Galatasaray got the lead in the first half with a Wesley Sneijder goal in the 42nd minute and felt comfortable moving to a more defensive setup with 15 minutes left in the match. But the 5'6'' Colombian Dorlan Pabon equalized the game with an unlikely header in the 81st. "I didn't know he was a target man, our scouts must've missed that," said Coach Bronc, alluding to his national team coaching staff. That goal forced the match into a Golden Goal situation. Finally 61 minutes into Golden Goal time, Galatasaray substitute Sinan Gumus got the ball just outside the box on the right side, and placed a shot perfectly with his favored left-foot to give Galatasaray the huge win. "Gumus has shown some flashes throughout the season and in practice, and it all just came together perfectly at that moment," said Coach Bronc. The win keeps Coach Bronc in the top flight and avoids a second stint in the second tier, but it does not appear Galatasaray will retain his services. However, the manager and club declined comment on his status post-match, as Coach Bronc would only say, "I'm just happy to remain in League A!"


text:
Holocaust Memorial Day: We need to reconcile the conflicting lessons of the the last century
This year, Holocaust Memorial Day (HMD) falls on the eve of another round of negotiations in Geneva that are unlikely to end the war in Syria – the latest case of mass killing that the international community has failed miserably to halt.
HMD has long been about more than just remembering the Holocaust and its victims. The failure of the world to prevent the crime of the Nazis or to come to the rescue of its victims provoked the cry of 'Never again'. Today, the cry sounds as forlorn as ever.
The cause of intervention to prevent genocide and other mass crimes has had its ups and downs since the twin tragedies of Bosnia and Rwanda in the 1990s made it an issue in international politics.
Then, the discrediting of the international community by its wilful failures to intervene to halt genocide, and of those Western statesmen implicated in the failure, motivated their successors to do better.
Hence, a series of international military interventions to halt atrocities, beginning with Kosovo and East Timor in 1999 and culminating in the saving of Benghazi from Colonel Gaddafi's forces in 2011.
There were terrible failures elsewhere, including Darfur and Congo. But the unanimous adoption of the 'Responsibility to Protect' (R2P) by the 2005 UN World Summit, committing the world to acting to prevent genocide, war-crimes and crimes against humanity even within the borders of sovereign states, seemed to have laid the ghosts of Bosnia and Rwanda to rest.
It was not to be.
Continue reading at Left Foot Forward
Friday, 12 February 2016 Posted by Marko Attila Hoare | Anti-Semitism, Genocide, Marko Attila Hoare, Syria	| Afghanistan, Benghazi, Bosnia, Colonel Gaddafi, East Timor, Holocaust Memorial Day, Iraq, Kosovo, Libya, Rwanda | Leave a comment
Noam Chomsky and genocidal causality
It is with some hesitation that I comment on the exchange between Noam Chomsky and Ian Williams over the question of responsibility for the bloodshed in Kosova in the late 1990s. Chomsky has no expertise and nothing interesting to say on the topic of the former Yugoslavia, and it is only because of his status as the world's no. 1 'anti-imperialist' guru that his utterances on the topic attract as many responses as they do. Chomsky epitomises the 'anti-imperialist' ideologue who believes in two things: 1) that the US is to blame for everything; and 2) that everything the US does is bad. If you share this worldview, then nothing said by Chomsky's critics, such as Williams or Oliver Kamm, is going to convince you that he may be wrong on Kosova. If, on the other hand, you do not share this worldview, and are not star-struck by the celebrity Chomsky, then his rambling comparisons between the Western response over Kosova and the Western response over East Timor can only appear extremely tortuous and boring. It is tiresome yet again to point out, for example, the absolute falsehood of Chomsky's claim that 'the crimes in East Timor at the same time' as the Kosovo war 'were far worse than anything reported in Kosovo prior to the NATO bombing' – it simply isn't true.
I am using Chomsky, therefore, only to open a discussion on the question of genocidal causality, and the insidious nature of the sophistry employed by Chomsky and his 'anti-imperialist' comrades: that Serbian ethnic-cleansing in Kosova occurred in response to the NATO bombing and was therefore NATO's fault. As Chomsky put it: 'The NATO bombing did not end the atrocities but rather precipitated by far the worst of them, as had been anticipated by the NATO command and the White House.' The thrust of Chomsky's argument is that since NATO commanders predicted that the NATO bombing would lead to a massive escalation of Serbian attacks on the Kosova Albanian civilian population, and since this prediction was borne out, then NATO is responsible for having cold-bloodedly caused the atrocities that occurred after the bombing started.
The falsehood of this logic can be demonstrated if we ask the following questions:
1) Chomsky claims that the bombing precipitated 'by far the worst' of the atrocities, but what precipitated the bombing ?
The answer is that the NATO bombing of Serbia in March 1999 was precipitated by Belgrade's rejection of the Rambouillet Accords. Belgrade was aware that rejecting the Rambouillet Accords would precipitate Serbia being bombed by NATO, but rejected them nevertheless. By Chomsky's own logic, therefore, Serbia's own actions precipitated the NATO bombings, and were consequently responsible for those bombings. Since, according to Chomsky, the bombings led to the atrocities, that means that Serbia was responsible for the atrocities after all.
What Chomsky would like us to believe, is that if a US or NATO action produced a predictable Serbian response, then the response was the fault of the US/NATO. But if, on the other hand, a Serbian action produced a predictable US/NATO response, then the response was still the fault of the US/NATO. This is self-evidently a case of double standards.
2) Chomsky claims that the bombing precipitated 'by far the worst' of the atrocities, but what would have been precipitated by a failure to bomb ?
From reading Chomsky and his fellow 'anti-imperialists', one would almost believe that the bloodshed in Kosova had been – in Edward Said's words – a 'Sunday school picnic' prior to the NATO bombing. Yet this is what Human Rights Watch reported in January 1999, more than two months before the bombing began:
The government forces intensified their offensive throughout July and August [1998], despite promises from Milosevic that it had stopped. By mid-August, the government had retaken much of the territory that had been held by the KLA, including their stronghold of Malisevo. Unable to protect the civilian population, the KLA retreated into Drenica and some pockets in the West.
Some of the worst atrocities to date occurred in late September, as the government's offensive was coming to an end. On September 26, eighteen members of an extended family, mostly women, children, and elderly, were killed near the village of Donje Obrinje by men believed to be with the Serbian special police. Many of the victims had been shot in the head and showed signs of bodily mutilation. On the same day, thirteen ethnic Albanian men were executed in the nearby village of Golubovac by government forces. One man survived and was subsequently taken out of the country by the international agencies in Kosovo.
The government offensive was an apparent attempt to crush civilian support for the rebels. Government forces attacked civilians, systematically destroyed towns, and forced thousands of people to flee their homes. One attack in August near Senik killed seventeen civilians who were hiding in the woods. The police were seen looting homes, destroying already abandoned villages, burning crops, and killing farm animals.
The majority of those killed and injured were civilians. At least 300,000 people were displaced, many of them women and children now living without shelter in the mountains and woods. In October, the U.N. High Commissioner for Refugees (UNHCR) identified an estimated 35,000 of the displaced as particularly at risk of exposure to the elements. Most were too afraid to return to their homes due to the continued police presence. [our emphasis]
(Contrary to what Chomsky says, the number killed in Kosova prior to the start of the NATO bombing was greater than the number of East Timorese civilians killed by the Indonesians and their proxies during the whole of 1999).
Chomsky is saying that if – instead of presenting an ultimatum to Belgrade at Rambouillet and then proceeding to bomb Serbia when Belgrade defied that ultimatum – the NATO powers had given Belgrade a free hand in Kosova, then Serbian repression in Kosova would simply have continued at what he considers to be an acceptable level. Of course, there is no way of proving one way or the other what would have happened in Kosova if NATO hadn't gone to war in the spring of 1999, but given the catalogue of horrors in the former Yugoslavia that were demonstrably not 'precipitated' by Western military intervention – the destruction of Vukovar, the siege of Sarajevo, the Srebrenica massacre, the killing of at least 100,000 Bosnians, the ethnic-cleansing of 300,000 Kosovars, etc. – the evidence suggests that it would not have resembled Edward Said's 'Sunday school picnic'.
3) Chomsky claims that the bombing precipitated 'by far the worst' of the atrocities, but even if this were true, would this make those atrocities NATO's fault ?
Genocides are invariably 'precipitated' by something or other. The Armenian Genocide was 'precipitated' by the outbreak of World War I and Tsarist Russia's military advance into Anatolia. The Rwandan Genocide was 'precipitated' by the Rwandan Patriotic Front's offensive against the Rwandan Army, the Arusha Accords and by the shooting down of the plane carrying Rwanda's President Juvenal Habyarimana. Of course, it is entirely legitimate for historians to interpret instances of genocide as having been 'precipitated' by something or other, but anyone who uses such explanations to shift the responsibility away from the perpetrators – whether Ottoman, Hutu, German, Serbian or other – is simply an apologist or a denier.
On 30 January 1939, Adolf Hitler gave a speech to the Reichstag in which he stated: 'If the world of international financial Jewry, both in and outside of Europe, should succeed in plunging the nations into another world war, the result will not be the Bolshevisation of the world and thus a victory for Judaism. The result will be the extermination of the Jewish race in Europe.'
Hitler therefore made it explicit that the outbreak of a world war would result in the extermination of the Jews in Europe. Indeed, the outbreak and course of World War II 'precipitated' the Holocaust. Britain and France, when they declared war on Germany in September 1939, were by Chomsky's logic responsible for the Holocaust. Some 'anti-imperialists' have, in fact, attempted to make this very point.
In sum, Chomsky's case is a disgrace at the level of plain reasoning, never mind at the level of ethics.
Let there be no mistake about this: atrocities, ethnic cleansing and genocide are the responsibility of those who commit them. Whatever 'precipitates' them, they are the fault of their perpetrators. And it would be a sorry world indeed if were were to allow perpetrators to deter us from taking action to stop atrocities, ethnic cleansing and genocide, by their threat to commit still worse crimes in the event that we do take action.
Image: Chomsky agreeing with Dobrica Cosic, the leading ideological architect of the Wars of Yugoslav Succession, on the need to partition Kosova – as reported by the Serbian magazine NIN.
Hat tip: Andras Riedlmayer, Daniel of Srebrenica Genocide Blog.
Tuesday, 25 August 2009 Posted by Marko Attila Hoare | Balkans, Former Yugoslavia, Genocide, Kosovo, Serbia	| Adolf Hitler, Armenian genocide, Arusha Accords, Bosnia, East Timor, Holocaust, Juvenal Habyarimana, NATO, Noam Chomsky, Rambouillet, Rambouillet Accords, Rwanda, Sakhalin, Srebrenica, Srebrenica massacre, Turkey | 1 Comment

redpajama_set_name: RedPajamaCommonCrawl


text:
Casey Prather Joins Khimki in Russia
Casey Prather has joined Khimki in the VTB United League, signing a one-year contract with Khimki with an option for a second year. Prather comes to Russia after spending last season in Greece and Australia. The Florida grad started the year with Melbourne United in Australia's National Basketball League before going to Promitheas Patras in the Greek A1 League.
Prather, a three-time NBL champion in Australia, averaged 15.0 points and 4.7 rebounds per game in 35 total games played, including 16.7 points per game while at Melbourne United. Last year, Khimki went 13-11 and finished in sixth place in the VTB United regular season league standings but made a playoff run, advancing to the Finals of the VTB playoffs before losing to CSKA Moscow. Other Americans that signed with Khimki this offseason are Dee Bost, Malcolm Thomas and Anthony Gill.
Ballers Of The Week
Featured Ballers
Signings/Transactions


The Meetings Industry Association (mia) is warming up for its next high-intensity, high-impact sales training event Sales HIIT.
Launched last year, Sales HIIT is a fast-paced one-day event which is designed to re-energise the sales strategies of agency and venue sales professionals.
The event returns on Friday 19 July at The Studio, Birmingham, where an expert line-up of speakers will lead bite-size sessions to help attendees develop their own winning sales strategy.
Dr Sue Holt, Cranfield University– So you want to do key account management?
Sales HIIT was one of the first events developed by the mia's Connect Taskforce, a group of experienced professionals from the business meetings and events industry sector who work to ensure the mia's events schedule is fresh and relevant.
The day includes the chance to network with sales managers, agents, consultants and general managers from across the industry over refreshments, lunch and happy hour drinks.


Imagine cutting a fresh lemon with a sharp knife, and letting the juices ooze out all over the cutting board. Then visualize bringing a slice of the lemon to your mouth, and letting your teeth sink into the soft flesh, allowing the tang to enliven your taste buds.
Did you find yourself salivating a bit just reading those words? Descriptions of taste evoke an immediate response in the reader. In this post, I'll provide some ideas to help you open to your sense of taste. Being in touch with this sense will enable you to be better at adding sensory taste details to your writing.
Some authors provide their readers with detailed descriptions of their main character's love affair with food, and of course, taste. Mystery writer Donna Leon is one of them. In her novels, she includes vivid descriptions of the Italian foods enjoyed by her main character, Commissario Guido Brunetti. In fact, she even wrote Brunetti's Cookbook, co-authored with Roberta Pianaro (Atlantic Monthly Press, 2009) so that readers could enjoy the Venetian foods they read about in her novels; dishes such as Penne Rigate with Beans and Bacon, Pork Stew with Porcini and Polenta, Tagliatelle with Peppers and Tomatoes. Are your taste buds watering?
Taste can also be metaphoric. A character can "taste" a setting or an emotion they are feeling. By describing these aspects through the sense of taste, the reader can understand how the character feels, without being told.
Our tongues can distinguish five tastes. (i). Of course, dishes often contain more than one of these tastes. I've included a few examples for each. Can you think of at least two additional foods for each category?
By experiencing a broader range of tastes, you'll be better able to describe taste in your writing.
I was recently attracted by the exotic appearance of this dragon fruit, with its bright fuchsia-coloured skin with green nodules that resemble dragon scales. The interior was soft with the texture of kiwi, and filled with tiny black seeds that yield a bit of texture to the bite. The flavour was slightly sweet and very mild – almost no taste at all. A new taste experience.
evoke a character's memory of childhood – what did that first bite of a mud pie taste like?
Here are some exercises to help you open to your sense of taste.
Why not gather some writer friends, and enjoy feasting and writing!
Do you love the taste of food? Do you often include descriptions of taste in your writing? I'd like to hear more about your experiences.
To read Part 1 in this series (Visual), CLICK HERE.
To read Part 2 in this series (Sound), CLICK HERE.
Our next writing retreat will take place on Sunday, April 27, 2014. We hope you can join us.
If you enjoyed reading this post, why not subscribe to our blog? Just enter your email address in the "subscribe" box at the top right hand corner of this page. And if you'd like to subscribe to our monthly newsletter, click here.
All photographs in this post are by Janis McCallen.


As the Palace faithful murmured expectedly outside of the Sainsbury, black smoke emerged from the chimney of the Jerk Chicken shop. Some feared that the shop may have caught on fire again. But the older heads knew that this could only mean one thing; another day has passed without the selection of a new manager.


Heve you been in car travel leisure Switzerland, Spain, Andorra, Denmark, Faroe Islands and now you are planing to visit Avotkalni? If so and you go to Avotkalni first time, interactive Avotkalni map and cute real photos of Avotkalni will show you the right way! Just on Volcano World you will find cute real photos shared by users and car travel leisure information about such small towns like Maztales, Kuiviši, Myza Tuya, Nabes Muiža, Puiķeles Muiža or such unknown regions like for example Gulbenes Rajons, Valmieras Rajons, Kraslavas Rajons, Rezeknes Rajons, Ogres Rajons etc. Navigation on the Avotkalni map was made by Google team, so you can view even Avotkalni streets and buildings in detail.


Is your family new to our office? Take advantage of our New Patient Special!
Our mission is to be the best chiropractic office in Wauwatosa to adjust, educate, and empower families in our community toward optimal health and wellness. We are a family-based chiropractic care clinic aimed at providing natural healing for you and your children. Dr. Jason Cindric specializes in pediatric and prenatal chiropractic care.
At Life Chiropractic Studio we have a strong focus on family wellness, pregnancy & pediatrics. You and your families will get that warm & inviting "family feel" feeling each time you walk into our office.
Our chiropractic team at Life Chiropractic Studio firmly believes in protecting a child's body by making sure they have the best possible functioning nervous system. Call today.


PhD, PGCert, MSc, SFHEA - Lecturer in Business Economics at Staffordshire University.
Christmas Cheer! We'll Be There!!
I knew Christmas was near when BBC Radio Stoke asked for an interview on Black Friday and how to spot good deals. The next day, students debated and presented evidence on some offers that seemed dubious – interesting. Be that as it may, the mood around campus and town was definitely getting lighter as everyone could feel the holidays approaching – research shows that holidays are good for morale.
There's been so much going on lately, we decided to wind down for Christmas. Here we are at a dinner at the wayfarer, an excellent country pub and restaurant.
Then we got a bit silly at the staff Christmas party.
Yours truly was able to get about in Hanley. There's a fantastic Winter Wonderland with loads to eat and do including, rides, go karts, games, an ice rink and of course a beautiful atmosphere.
This is a blog post about the Hult Prize, written by Sarah Vitorino, a student. The Hult Prize has become the world's largest student competition, as well as the most prestigious award on the planet for the creation of new social enterprises.
I first found out about the Hult Prize through a lecturer at the university. As a part-time student I wasn't sure if I would be able to compete, but after finding 2 other members for a team, Dan, Dani and I signed up together. The challenge set by the competition was to help 10 million refugees by 2022. With the help and support from the university, our team (which we named "Team Reach") finally decided that we would build a fashion company in Colombia, in which factory seconds and discarded materials would be used to create our own fashion line, working with up and coming designers. Since 1985, over 4 million Colombians have been displaced by the armed conflict, both within the country and crossing the border into surrounding countries. This was our chance to make a difference.
Team Reach with other International Students at Hult Prize 2017 (Sarah Vitorino is 4th from right).
After pitching to judges within Staffordshire University, we were put through to the continental finals in London. Before we went to London, we spent many hours perfecting our business plan with Tolu (our lecturer and mentor) and got support from other lecturers within the School of Business, Leadership and Economics. We were put in contact with experienced entrepreneurs who also gave us sound business advice and we also got to pitch to the university's senior management team which included the Vice Chancellor. With the presentation and the pitch ready for London, the weekend of the finals quickly came around. Once in London, we were introduced to, and listened to speakers including Cesar Del Valle who were so passionate about the Hult Prize and everything it stands for that straight away it wasn't just a competition. Yes, we wanted to win in London and go through to the next round, to eventually win, but that was secondary. What mattered was that we were stood in a room filled with students from across the world and we were all fighting for the same thing, to help refugees and to make the world a better place.
The winning team from London was a Canadian team wanting to connect refugees with locals to exchange skills. Nonetheless, our time in London was amazing. We heard ideas and pitches for things we would never have considered, we met people and made friends from all over the world, we took part in an experience that most people could only dream of. The memories of that weekend will always be with me; the atmosphere of the weekend will be something I could never forget and I became much more confident. I still get nervous at public speaking but I know now that I can do it. The biggest change in myself, however, is that I caught something that weekend. From the atmosphere, the passion of the speakers and the insights of our new friends, I want to change my life. I want my future to be about helping people and making a difference to the world because there are so many other people out there who have so much less than I do. I changed because I realised that I really can make that difference we set out to.
The Hult Prize is a fantastic event and I would advise all students to compete. It not only gives you practical skills, you get to interact with university students from around the world for a good cause. It is one of the best things that I have ever done and I am grateful for the opportunity. Go ahead and give it a try. You will not regret it.
Technology has fabulously changed our jobs market since it transformed the production landscape during the industrial revolution, but even more so in the past three decades. Like in the 16th century, many jobs that were once considered crucial are now obsolete, and new job descriptions are being created in the labour market even as many forms of automation are presently being integrated into the production process. One does not have to go far to see how technology has changed our lives in forms of communication, transportation, work and leisure. Your being able to read this article has been greatly enhanced by technology and I as the writer have had to have some basic skills in technology to be able to deliver this article to you.
As an economist, there used to be a time when my profession worried about what humankind would do when we ran out of oil but recent technological advancements have once again rendered that discussion archaic. There also used to be a time when the factors of production were firmly believed to be land, labour, capital and entrepreneurship but some economists will argue that there is a need to include one additional factor of production in the modern era – you guessed it "technology".
So what does this mean for young people as they decide their future? Should we be scared of this trend? How far reaching will advancements in technology be felt? Humankind has been very fortunate to have been able to grasp the benefits of technology and we have used it to live longer healthier lives, explore space and other planetary objects, and open great doors for the future but we have also made many mistakes along the way. Young people need to wary of this and know that they have to be the ones to decide on how we harness this power and what we use it for.
This example shows that a business owner needs a modest amount of education to function profitably. This education might not necessarily be formal but the entrepreneur must know their stuff.
In our current society we are awash with technological advancements and these seem to be changing the way we live and do business. Businesses that have not kept abreast of current vagaries or have been slow to make investments in innovation have found themselves left behind, and entrepreneurs will need to know that they will face the same fate if they do not stay knowledgeable about technological developments that affect their customers and market.
This also presents some opportunities for entrepreneurs as they can be avant-gardists and influencers of the future. Imagine the impact that innovators have had on our current society not just in terms of social media but virtually in all productive fields. The world needs smart means of using its limited resources to improve the quality of our lives, and individuals who can do this successfully will be blessed with the commensurate rewards.
A holistic education is thus needed to be successful in the present climate as well as an open mind and the right sort of social capital. As the saying goes "no one is an island" and "many hands make light work". Business owners and potential successful entrepreneurs will also be wise not to jump into the water with both feet but to test out their ideas and products carefully before venturing out boldly into the wide world.


Chelsea's 6-0 Premier League drubbing at the Etihad Stadium was alarming but it is the frequency of defeats away from Stamford Bridge that is causing the most concern.
City reflected on their performances and Guardiola demanded more before they blitzed Arsenal, Everton and then Chelsea. Something is changing. I am not able to see the reason but we have to work for this.
"We are top of the league but we have to wait to see when Liverpool go to Old Trafford now as we have played one more game", he said. They beat us at Stamford Bridge [in December] and against Napoli last season [in the Champions League] it was tight, they were better in moments. "It's not to change (to another style of) football because at the moment we are playing another football".
Pep Guardiola's side should have been 2-0 up sooner though.
Jamie Carragher was unsurprisingly brutal with his analysis of Chelsea's first half performance. Sterling was brought down in the box by Cesar Azpilicueta and Aguero stepped up and sent Kepa Arrizabalaga the wrong way from the spot.
Former Liverpool FC and Manchester United striker Owen doesn't anticipate Manchester City dropping points against Chelsea FC at The Etihad on Sunday.


text:
WMXM 88.9FM
LISTEN LIVEVIEW RECENT TRACKS
Backspin: WMXM Vinyl Archives Spotlight Fall 2012
WMXM has been a living breathing FM station since the late seventies. WMXM peaked when most college stations peaked, in the mid 1980s and eaprly 1990s.What is left is a museum for the music lover, a sort of petting zoo for the audiophile. Some of the best records, and the deepest cuts of the earliest trials of the biggest names in music are just lying in wait. Years of recording history are trapped in the shelves of Lake Forest College's cavernous archives. To help free them upon the thirsty public, WMXM has decided to spotlight one major Chicago trendsetter at a time. This semester we are looking at punk legend Steve Albini.
When it comes to this city's punk scene, Steve Albini is Chicago's crown jewel. A writer, engineer, and music journalist, Albini remains one of the most controversial figures of this scene, his certain influence on music for decades to come explains why we chose to highlight him in our first Vinyl Archives Spotlight here at WMXM.
Albini entered the scene in 1982 when his band, Big Black, released its first EP Lungs. Follow-up albums Atomizer and Songs About Fucking are considered pivotal punk albums from the 80's. After this, Albini became one of the "hardest working" producers in the business. He took over the Effigies' label Ruthless Records, which saw releases from Big Black, Effigies, End Result, Naked Raygun, Rifle Sport, and Urge Overkill, and recorded dozens of artists, including Urge Overkill, The Pixies, The Membranes, Flour, Pussy Galore, and EVERY JESUS LIZARD RECORD EVER. In addition to this work with others, he continued to pursue his own sound, forming the group Rapeman after the split of Big Black in 1987, and much later, founding the band Shellac with Bob Weston and Todd Trainer.
The 90's were loaded with controversy, but also some of the biggest records Albini would put his stamp on. He recorded The Breeder's (Kim Deal of Pixies fame, and her twin sister Kelly) Pod, Superchunk, Fugazi, PJ Harvey, Melt-Banana, Low, Scrawl, Guided By Voices, Cheap Trick, and most controversially, Nirvana.
Many critics called Nirvana's In Utero a flop for Albini. Not that the record was bad. The recording and sound that made Albini so famous, with its focus on instrumental tracks and especially on drums, was seen as a bad fit for Nirvana, by now an established success story. Albini was criticized even before the record was complete. Here was Albini, one of the most outspoken critics of bands who "sold out" their sound to be more accessible to a more mainstream audience recording Nirvana, a platinum-selling artist. When the record was done, neither Nirvana nor the record company was satisfied with the end result. Calling the record "unlistenable." Scott Lit remixed the singles "Heart-Shaped Box" and "All Apologies" for the radio.
That even rock gods have hiccups on their careers notwithstanding, Albini is nevertheless regarded as one of the most influential producers in Chicago. He still plays in Shellac, and has recorded the most recent critically acclaimed albums from The Screaming Females, and the incredible Attack on Memory from Cloud Nothings.
← WMXM Presents: Teengirl Fantasy @ The Chapel
Interview with Steven Levitt co-author of Freakonomics Series →
2 thoughts on "Backspin: WMXM Vinyl Archives Spotlight Fall 2012"
Matt Galloway says:
I was a WMXM dj in 1985. I was there for the heyday. Steve Davis was our manager and he deserves credit for much of the music library. Check out Glorious Din "Leading Stolen Horses". What a great time we had. All the best to the new WMXM staff.
Mr Bill says:
Does 81-84 count…what a diverse playlist we had! What memories!!!
Proudly powered by WordPress | Theme: Intro by aThemes.


text:
G is for Generics
Saturday, 07 April 2018 07:15:23 CDT David-Braverman General, Personal, Work (2)
For day 7 of the Blogging A-to-Z challenge, I'm going totally generic.
A generic in C# allows your code to "defer the specification of one or more types until the class or method is declared and instantiated by client code." In other words, you can declare a class that takes a type to be named later.
Imagine you have a program that represents a house. Your house has rooms, and the rooms have windows, doors, and in some cases, fireplaces. They also have furniture. And sometimes headless corpses. (Don't ask.)
If you were using C# 1.0, you'd need to design structures to hold all of these things, and you'd probably wind up using arrays, like this:
#region Copyright ©2002 Inner Drive Technology
namespace InnerDrive.DailyParkerAtoZ.WeekOne
public class Window
public void Close() { }
public void Open() { }
public class RoomV1
public void Add(Window window)
_windows.Add(window);
public IEnumerable Windows
return new ArrayList(_windows);
private readonly ArrayList _windows = new ArrayList();
The only problem is...you don't really know for sure whether the things going into or coming out of the _windows array list are actually windows. That's because the System.Collections.ArrayList class only stores objects, not specific kinds of objects.
Generics allow you to impose type safety on the collection of windows through the use of a type parameter. Now you can do this:
public class Room
public IEnumerable<Window> Windows => new List<Window>(_windows);
private readonly List<Window> _windows = new	List<Window>();
(Notice also the nifty shorthand on line 8 that eliminates the get method.)
This works because the List<T> class takes any object type for T, leaving it up to the compiler to work out what type it should contain. The prototype for the class looks something like this:
public class List<T>
public void Add(T input) { }
The type parameter T can be anything. (You can restrict what T can contain, which I will leave as an exercise for the reader.)
Generics simplify a lot of programming tasks. But just wait until Tuesday when I show you how to make object-oriented designs really fly in C#.
Housekeeping note: The A-to-Z Challenge takes Sundays off. The next post in this series will be on Monday. Enjoy your weekend!
F is for F#
Friday, 06 April 2018 07:00:08 CDT David-Braverman General, Work (0)
We're up to day 6 of Blogging A-to-Z challenge, FFS.
The last few days I've written about the two main object-oriented languages that come with Visual Studio and .NET: C# and VB.NET. Today I want to diverge just a little into Microsoft's functional language, F#.
At first glance, F# looks a lot like C#. It is, in fact, a flavor of C#; and as it runs on the .NET CLR, it uses .NET constructs. But as Microsoft says, "F# is a programming language that provides support for functional programming in addition to traditional object-oriented and imperative (procedural) programming." Part of this support is the ability to express functions as first-class values. That means you can pass functions around as variables, and do things with them, in ways you can't with C# or other object-oriented languages (sort of—C# can do this too as of 4.7).
let celsius (f: float) : float = (f - 32.0) * (5.0 / 9.0)
[<EntryPoint>]
let main argv =
let c = 68.0
printfn "%f Fahrenheit is %f Celsius" c (celsius c)
0;;
This is just one step up from "Hello World," in that it actually does something. Two interesting bits: (a) You don't actually need to run this using the EntryPoint identifier; you can run it interactively; and (b) More importantly, celsius is just a variable.
I would love to spend another hour on this post, but I can't do the topic justice. Scott Wlaschin, on the other hand, will show you how to use F# for fun and profit. I recommend his site if you want to learn more.
But here's the sad truth: it's not very practical yet. And C# allows you to pass functions as parameters, even anonymously, so F# no longer has a monopoly on functional programming.
Remember, these A-to-Z posts aren't meant to exhaustively describe the topics. I'm only hoping to outline them and provide some follow-up reading links. And with F#, after a 45 minutes on one post, that's about all I'm up for today.
E is for Encapsulation
Thursday, 05 April 2018 07:04:58 CDT David-Braverman Personal, Work (0)
Welcome to day 5 of the Blogging A-to-Z challenge.
In object-oriented design, we talk about a number of basic concepts that make code easier for humans to read and maintain. Encapsulation is fundamental, by hiding the internal data of a class so that only the class can use it. To access data within the class, you can't just reach in and grab it; you need to use the public properties and methods of the class.
Here's a stupid class:
public class Encapsulation
public string Name { get; private set; }
public void ChangeName(string newName)
if (string.IsNullOrWhiteSpace(newName))
throw new ArgumentException("Name must have a value", nameof(newName));
Name = newName;
_names.Add(newName);
internal void Clear()
Name = string.Empty;
public IEnumerable<string> NameList => new List<string>(_names);
private readonly List<string> _names = new List<string>();
Seriously, this is dumb. But it demonstrates some of the ways C# encapsulates data.
Line 12 creates a property called Name that any code anywhere can call, because it's public. But it also declares a setter method that is private, meaning only the Encapsulation class itself can set the value of Name.
Lines 14-22 show how this works. The ChangeName method first makes sure you are giving it a real value, then changes Name and adds the new name to a list of names that is itself private. So the only way to change Name is to use the ChangeName method. (There's another way to do this in the property setter, but I wanted to show how this works exactly.)
Lines 24-27 provide you a way of clearing Name, but the method is marked internal. That means only classes in the same assembly can use this method, which has consequences for our unit tests, below.
Line 29 does a nifty trick where, instead of actually giving outside code access to its private list of _names (line 31), it creates a copy of the list and sends that out. Otherwise, anyone would be able to change the contents of _names just by using the NameList property.
Now here's the unit test code:
using InnerDrive.DailyParkerAtoZ.WeekOne;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace InnerDrive.DailyParkerAtoZ.UnitTests
[TestClass]
public class EncapsulationTests
[TestMethod]
public void CanSetNameOfObject()
var thing = new Encapsulation();
//thing.Name = "This won't compile";
//thing._names.Add("This won't compile either");
thing.ChangeName("Ernie");
Assert.AreEqual("Ernie", thing.Name);
Assert.AreEqual(1, thing.NameList.Count());
public void CanClearNames()
// thing.Clear(); // oops—won't compile!
// Assertions fail!
Assert.IsTrue(string.IsNullOrWhiteSpace(thing.Name));
The comments explain what's going on.
So how can we test the Encapsulation.Clear() method? By adding this line to the InnerDrive.DailyParkerAtoZ.WeekOne.AssemblyInfo.cs file:
[assembly: InternalsVisibleTo("InnerDrive.DailyParkerAtoZ.UnitTests")]
Now all of the objects, properties, and methods in the WeekOne assembly marked internal are visible to the unit test class, and the tests pass.
As always, the growing Visual Studio solution is here. The ZIP file contains the complete Git log of the project, by the way. Enjoy.
D is for Database
Wednesday, 04 April 2018 07:00:09 CDT David-Braverman Personal, Work (0)
Welcome to day 4 of the Blogging A-to-Z challenge. After yesterday's more theoretical post on the CLR, today will have a practical example of how to connect to data sources from C# applications.
Almost every application ever written needs to store data somewhere. If you're deploying a .NET website into Microsoft Azure (like this blog), you will probably connect it to an Azure SQL Database. Naturally, Visual Studio and C# make this pretty easy.
Here's the code that opens up a database connection and prints out to the Trace window what it's opened:
using System.Configuration;
using System.Data.SqlClient;
public static class DataConnections
private static string ConnectionString => ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
public static void Connect()
using (var connection = new SqlConnection(ConnectionString))
connection.Open();
Trace.WriteLine($"Connected to {connection.DataSource}");
Let's take a look at that line by line.
Lines 3-6 tell the compiler that the objects referenced in the executable code come from those four namespaces (which I'll talk more about on April 16th). The SqlConnection class, for example, lives in the System.Data.SqlClient namespace. If I didn't have the using statement on line 5, I'd have to reference the class and its namespace as System.Data.SqlClient.SqlConnection, which is cumbersome.
Line 13 creates a ConnectionString property that gets its value from a configuration setting. More on that below.
Line 17 first sets up a different kind of using statement, which makes sure that whatever the expensive SqlConnection class does while its alive, it gets cleaned up when it finishes on line 21—even if it throws an exception. Then the same line creates a new SqlConnection object and assigns it to the variable connection.
Line 19 attempts to open the connection to the database. If it succeeds, line 20 prints out the name of the data source. If it fails, it throws an exception that whatever method called this one can catch.
The configuration file looks like this (but with a real database, user ID, and password):
<add
name="Database"
connectionString="server={server name}.database.windows.net;initial catalog={database name};persist security info=True;user id={user ID};password={password};"
Notice that the name on line 5 corresponds to the configuration setting name on line 13 of the C# code. That's how the code knows which connection string to read from configuration.
Finally, there's also a unit test, which looks like this:
public class DataConnectionsTests
public void CanConnectToDataSource()
DataConnections.Connect();
If the call to DataConnections.Connect() succeeds, the test passes. If the call fails, the test fails and shows the exception that gets thrown.
You can download the code for all of these posts here. You'll have to change the configuration information in the unit test project's app.config file to make it work, of course.
C is for Common Language Runtime
Tuesday, 03 April 2018 07:00:09 CDT David-Braverman Personal, Work (0)
Day 3 of the Blogging A-to-Z challenge brings us to the heart of .NET: the Common Language Runtime (CLR).
Microsoft defines the CLR as the run-time environment which "runs the code and provides services that make the development process easier." That isn't the most helpful definition, so let me try to elaborate.
As I described Sunday and yesterday, the .NET compiler takes your source code from C# or whatever other language you use and compiles it down to one or more managed modules containing intermediate language (IL), which get further compiled into assemblies.
When your program runs, the CLR is the thing running it. It loads your assemblies and then handles all the tasks your program needs to survive, like memory management, thread synchronization, exception handling, security, etc. It actually does this through Just-in-Time compilation (JIT), when it translates the IL into your machine's own language. This means that when an IL instruction is executed for the second time, it runs in native CPU code.
The CLR also manages .NET's common type system (CTS), which "defines how types are declared, used, and managed in the common language runtime," according to Microsoft. Types (my topic for April 23rd) are therefore a part of every .NET program, even (gasp!) Ruby.NET. I'm picking on Ruby because in that language, ever instruction gets interpreted at run time, making it possible to use types that you haven't defined. The CLR and the CTS prevent you from doing that.
To learn a lot more about the CLR, I strongly recommend Jeffrey Richter's CLR via C#, which I mentioned Sunday.
B is for BASIC
Monday, 02 April 2018 07:12:35 CDT David-Braverman Personal, Work (1)
For day 2 of the Blogging A-to-Z challenge, I'm going to talk about the first computer language I learned, which is still alive and kicking in the .NET universe decades after it first appeared on a MS-DOS 1.0 system disk: BASIC.
BASIC stands for "Beginner's All-Purpose Symbolic Instruction Code." The original specification came from John Kemeny and Thomas Kurtz at Dartmouth College in 1964. Today it's one of the core .NET languages included with Visual Studio as "VB.NET" (for "Visual BASIC," Microsoft's dialect of BASIC released in 1991).
Yesterday I showed you a "Hello, World" application written in C#. (You can download the source code here.)
Here's the VB.NET version:
Module Program
Sub Main()
Console.WriteLine("Hello, World!")
Console.ReadKey()
What's different? Well, a lot of things: no braces, no include lines, no semicolon line endings...and that's just for a 2-line program.
But look at what's the same. Because this is a .NET program, the actual guts of it look almost exactly the same. There are two calls to different methods on the Console object, and except for the missing semicolons, they are identical to the calls in C#.
Here's the IL:
.method public static void  Main() cil managed
.entrypoint
.custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
// Code size       19 (0x13)
.maxstack  8
IL_0000:  nop
IL_0001:  ldstr      "Hello, World!"
IL_0006:  call       void [mscorlib]System.Console::WriteLine(string)
IL_000b:  nop
IL_000c:  call       valuetype [mscorlib]System.ConsoleKeyInfo [mscorlib]System.Console::ReadKey()
IL_0011:  pop
IL_0012:  ret
} // end of method Program::Main
Wow. The IL is exactly the same. So both the VB.NET and C# code compile down to functionally identical assemblies.
And that's one of the most important characteristics of .NET: it lets you write code in any language you want (as long as someone has written a compiler for it), and run it on any platform you want (as long as there's a CLR for it).
I worked with Visual BASIC from versions 1 to 6, and then did one project in VB.NET before switching to C# in 2002. You really would need to pay me a lot of money to go back to it. I believe C# is more expressive, more concise, and more able to reflect my intentions than VB.NET.
But there is nothing wrong with VB.NET. If you want to use BASIC, enjoy. With the .NET ecosystem, it's up to you.
A is for Assembly
Sunday, 01 April 2018 07:00:08 CDT David-Braverman Work (0)
Welcome to the Daily Parker's 2018 Blogging A-to-Z challenge!
We're starting today with a fundamental concept in Microsoft .NET software development: the Assembly.
Microsoft defines the assembly as "a .dll or .exe file that can contain a collection of APIs that can be called by apps or other assemblies." In other words, an assembly is the basic unit of delivering .NET software to the rest of the world. An assembly "fully describe[s] and contain[s] .NET programs."
When you compile .NET source code, the compiler creates one or more of these files, each of with contains an Intermediate Language (IL) representation of your original code. You can then distribute the .dll or .exe files to any computer that has the correct version of the .NET Common Language Runtime (CLR) installed on it.
I've created a Visual Studio solution for this challenge. Today we're looking just at one small piece of it, which looks like this:
// ReSharper disable CheckNamespace
namespace InnerDrive.DailyParkerAtoZ.HelloWorld
internal static class Program
// ReSharper disable once UnusedParameter.Local
private static void Main(string[] args)
Console.WriteLine("Hello, World!");
If you're new to .NET, don't worry about all the pieces. This two-line program compiles into an assembly called HelloWorld.exe, which internally looks like this:
.method private hidebysig static void  Main(string[] args) cil managed
Again—we're not going to get into a lot here. Suffice to say, that IL above is what actually lives in the assembly, and what the CLR will execute when you run the program. The assembly also contains a manifest, describing what it contains, and some metadata about its version, author, and whatever else the programming team has added to the assembly info file.
As with all of the topics for this year's A-to-Z challenge, I'm only scratching the surface. There is a ton more to read online and in some solid books on the market. The best information about assemblies I've found is in Jeffrey Richter's CLR via C#.
Note: the Visual Studio Solution for this challenge requires Visual Studio 2017 and the .NET Framework v4.7. ReSharper is also recommended.
Tuesday link round-up
Tuesday, 20 March 2018 16:29:18 CDT David-Braverman Entertainment, General, Politics (0)
Late afternoon on Tuesday, with so much to do before the end of the week, I can only hope actually to read these articles that have passed through my inbox today:
New Republic's Josephine Livingstone praises the latest "Tomb Raider" movie for humanizing Lara Croft.
James Fallows takes a look at the 15-year history of the Iraq War and shakes his head. Which is a lot gentler a commentary than Iraqi native Sinan Antoon has in the Times under the title "Fifteen years ago, America destroyed my country."
Former Australian prime minister Kevin Rudd thinks the West doesn't get Xi Jinping, to our peril.
In nerd news, JetBrains' next release of ReSharper will handle non-trailing named arguments better. If you don't know what that means, that's OK; it's beyond even what I'll be writing about for the Blogging A-to-Z challenge.
For a cringe-slash-laugh, the Daily WTF has a wonderful description of bank security that will make you wonder how secure banks are.
And now for something completely different tonight: Improv and Arias. Which is why I wonder whether I'll actually get to read all of the articles I just posted about.
1.5 Gs
Sunday, 18 March 2018 09:41:28 CDT David-Braverman Personal, Work (1)
As of just a few moments ago, I passed 1.5 billion seconds old.
Yes, this is a thing most people don't really think about, but as someone who works in software, this actually has some significance—and another Y2K problem that will occur just a few months before I get to 2.0 Gigaseconds (Gs) in 2038.
The problem is a thing called the Unix epoch. Computers can only count as high as they have bits to count. Unix computers, which include Macs and most of the infrastructure of the Internet, count time in seconds from 1 January 1970 00:00 UTC, which was (at the moment I'm typing this) 1,521,383,994 seconds ago.
Everyone knows computers can count to awesomely huge numbers. But you need to give them enough bits to do that. Unix time is measured by a 32-bit number, which can count up to 232-1, or 4,294,967,295 (in binary, a 32-item string of 1s), which is enough seconds to count just over 136 years.
But you sometimes want to measure things that happened in the past, so Unix time takes the first bit of the 32-bit number and makes it a sign. If the first bit is 0, the time is in the present. If it's 1, the time is the number of seconds before the beginning of the epoch. So this cuts the measurable period in half, to 68 years. Specifically, Unix time rolls over at 3:14:08 on 19 January 2038.
The fix is simply to use a bigger number. Today, 64-bit numbers are no big deal, and they give you 263-1 (9,223,372,036,854,775,807) seconds to work with in either direction. That's roughly 292 billion years, which is sufficient to measure most human-scale activities.
So, knowing all this, and knowing that I was born in the first year of the Unix epoch, it wasn't difficult to figure out my "epoch" birth moment at 9:12 CDT this morning.
But there's a catch. As I mentioned, computers count by 2s, not by 10s, so this entire post is a lie. I'm not 1.5 Gs old; I'm just over 1,500,000,000 seconds old. 1.5 x 230 (i.e., 1.5 giga anything) is 1,610,612,736, so I won't be 1.5 Gs old until Unix moment 1,631,995,056, which will be 18 September 2021 at 19:57:36 UTC.
So check back in three and a half years. I'm sure I'll have another post about this nonsense then.
(For those of you keeping score at home, I was 1.0 Gs old on 13 September 2004 at 20:09:04 CDT, during a lull in blogging. Else I'm sure I would have mentioned this then.)
Long weekend; just catching up
Monday, 12 March 2018 13:28:10 CDT David-Braverman Chicago, Entertainment, General, Geography, Politics, Travel, Weather (1)
Saturday and Sunday, the Apollo Chorus sang Verdi's "Requiem" three times in its entirety (one dress rehearsal, two performances), not including going back over specific passages before Sunday's performance to clean up some bits. So I'm a little tired.
Here are some of the things I haven't had time to read yet:
I always read Andrew Sullivan's weekly column but I haven't had a chance yet.
Democratic candidate Conor Lamb might win in a heavily-Republican district in Pennsylvania. (Disclosure: I have contributed to Lamb's campaign.)
The Telegraph UK reports that there is now a genetic test for intelligence.
Jeet Heer returns to political reporting, suggesting that the President's ideas aren't as bad as his execution of them.
Now that we're back on Daylight Saving Time in North America, The Daily WTF reminds us how much fun it is to debug software implementations of time zones.
Microsoft's Raymond Chen started a series of blog posts on advanced Git management.
Cranky Flier says American's most recent changes to its scheduling practices are good for customers.
Closer to home, the city of Chicago and the Chicago Transit Authority have started construction aimed to fix one of the biggest bottlenecks on the El.
Crain's Chicago Business reports that, for the first time in its existence, Groupon has had a profitable quarter.
Chicago History Today has side-by-side photos of Dearborn and Jackson from 1936 and 2017.
And finally, NASA has launched two new weather satellites that will significantly advance weather forecasting.
Other stuff is going on, which I'll report when I have confirmation.


Tasks for setting up a cloud product, provisioning virtual resources, and requesting virtual machines from the service catalog depend on the user group to which you belong.
Installing the AWS plugin creates a new model and model category called EC2 Instance. The instance creates a new asset for the model when Cloud Management fulfills a virtual machine request, and then creates an EC2 configuration item (CI). The new asset appears in the requester virtual plugin. When the virtual machine is terminated, asset management retires the asset.


text:
Virtual Honor Flight – Cool Way to Thank Vets
2nd Lt. Jack Humbrecht 1944
The myriad of ways people find to show support to our military are impressive.
Recently I had the honor and privilege to meet a World War II veteran who participated in a 'virtual' Honor Flight of Northeast Indiana.
During the war, Jack Humbrecht was flying a B-17 over occupied Poland border when his plane was shot down. Three crew members died and the rest were taken prisoner.
Humbrecht spent 9 months in German concentration camps before he was freed during the liberation. Back in Fort Wayne Humbrecht married his wife Lauana and they raised two sons.
Today, due to health reasons, Jack Humbrecht is unable to participate in a trip to Washington DC with Honor Flight of Northeast Indiana to see the military memorials.
Someone who is infinitely smarter than me came up with the idea of creating a 'virtual' trip for veterans who could not see the memorials in person via specially equipped goggles.
Matt Dearduff and Terri Hathaway Schackow, volunteers with Honor Flight of Northeast Indiana, gave a "Flightless Honor Flight" Virtual Reality Tour to Mr. Humbrecht.
When they placed a pair of these special goggles on him, he could 'see' scenes of Washington DC as if he were standing in front of the military memorials.
I know this to be true because they also allowed me to take the 15-minute tour as well. Cool!
They also presented Mr. Humbrecht with an Honor Flight of Northeast Indiana T-shirt, hat, challenge coin, photo book and "mail call" packet of letters from grateful people. This photo is Matt showing the special Honor Flight book to Mr. Humbrecht.
Thanks to Mr. Humbrecht's family for helping to set up the meeting.
The spring 2019 Honor Flights of Northeast Indiana are April 24 and May 22. I'll be at Fort Wayne International Airport to welcome them home. How about joining me? It's a party and so fulfilling.
What can you do today to show appreciation for the veterans who fought for our freedoms?
Army Air Corps, Army history military, B17, books, Military, POW, veteran, WWII
Army Air Corps, Honor Flight of Northeast Indiana, POW, veteran, WWII
1940s Dance Fundraiser for Honor Flight
'Plucky' — My word for WWII Female Officers
4 thoughts on "Virtual Honor Flight – Cool Way to Thank Vets"
What a wonderful idea. I know Mr. Humbrecht must have been quite impressed with the virtual tour.
I blieve he was. It was a privilege to watch him experience it. We did an interview as well which I always consider an honor. Thanks for your consistently kind, supportive comments.
Steven Lurati says:
My grandfather was on his plane when it was shot down and also became a POW. I've been Hunting for any photo of that plane but been unable to find any
Steven: Thanks for your comment. Have you looked under Google images for the plane? If you know if he was attached to the 8th Air Force or other group, you could contact them for help. The 8th in particular has a great number of resources for research. There are many Facebook groups that like to help too. If you know when his plane went down and where and where he was held prisoner, that can help. Did your grandfather tell you more info? He must have been very brave. Good luck!


Lorenzo Wheeler Payne was born on December 7, 1826, in St. Lawrence County, New York, the son of Pardon (1789-1867) and Betsey K. (Boutwell, b. 1803).
Pardon was born in Rhode Island and Betsey in Vermont and they were married, possibly in New York or Vermont sometime before 1826, and Lorenzo was the oldest of 12 children. By 1850 his family was living in Antwerp, Jefferson County, New York.
Lorenzo was married to New York native Harriet A. Walworth (b. 1831), probably in New York, and they had at least four children: Josephine (b. 1852), Matta (b. 1859), Charles (b. 1864) and a daughter Jessie (b. 1868).
The family moved from New York to Michigan sometime between 1852 and 1859, and by 1860 Lorenzo was a master carpenter living with his wife Harriet and their children in Thornapple, Barry County.
He stood 6'0" with black eyes and a light complexion and was 34 years old when he enlisted in Company K on May 13, 1861. He was left at Grand Rapids, presumably sick, when the Regiment departed on June 13, 1861, for Washington, DC, but eventually rejoined the Regiment and was reported as a bugler and absent sick in the hospital from October of 1862 through December. He was discharged on January 11, 1863, at Third Corps hospital, for varicose veins.
Lorenzo eventually returned to Barry County. By 1870 he was working as a carpenter and living with his wife and children in Middleville. By 1880 he was working as a sewing machine agent and living with his wife next door to a dry goods merchant named William Brightrial (?) in Middleville. He was still living in Middleville in 1888, 1890 and 1894; indeed he probably lived the rest of his life in Middleville.
He was a member of G.A.R. Hill post no. 159 in Middleville. In 1884 he applied for and received a pension (no. 388997).
Lorenzo died on October 23, 1899, presumably in Middleville, and was buried in Mt. Hope cemetery, Middleville.
In November of 1899 his widow applied for and received a pension (no. 492111).


GMG is currently looking for serious distributors able to represent our company. Our goal is to introduce our innovative products in countries recognizing the CE Marking.
We are looking for distributors able to penetrate new markets.


text:
Seven big questions for the AFL in 2020
Josh Elliott
Footy's never-ending cycle of rebirth begins anew today. It's a new year, it's 2020, and we're set for a season of AFL that will – as always – be infested with intrigue and drenched in drama.
Here's my early look at the big stories to follow.
Are caretaker coaches the new black?
The AFL's senior coaching landscape saw two major developments in 2019.
The first was – after no coaching changes in 2018 and only one the season prior – seeing five of the AFL's 18 clubs swung the axe in the year just past.
If you include Essendon's announcement of a succession plan, which will see Ben Rutten replace John Worsfold at the end of 2020, then a whole third of the senior coaching staff changed in the space of 12 months.
The second – an unprecedented move – had three caretaker coaches promoted to the permanent job after exemplary in-season performances.
David Hale, who coached Fremantle in Round 23, was the only person to act as a caretaker last year and not get the nod for the full-time job.
Brad Scott was the first coach to depart his position in 2019, finishing up after ten rounds, with Rhyce Shaw – who had only started at North Melbourne an assistant that year – taking the reins.
North pursued past champions Adam Simpson and John Longmire with big-money offers, but after being knocked back by both, settled on Shaw as their best option after he delivered an impressive on-field turnaround.
It was a simillar path for David Teague at Carlton, who jumped into the role after Brendon Bolton was sacked 11 games in.
Teague seemed the most unlikely for the role, but when he struck gold with a winning run of form he gained massive popular support and, like Shaw, became too popular not to appoint.
Brett Ratten's rise was less dramatic – there'd been an expectation all year that Alan Richardson was likely to depart the Saints at some stage and that he could be a possible replacement. In the end this was an almost organic transition.
No caretaker coach has been given an ongoing appointment since Matthew Primus in 2010 and his results – winning just eight from 40 games after being confirmed as senior coach – were so disastrous it seemed to scare clubs away from such a move.
But in 2020 the approach is being given a second chance, with three former caretakers in the mix, and Rutten set to join the senior coaching ranks through a similar arrangement.
Will they flourish or will they fail? It's time to find out.
(Photo by Darrian Traynor/Getty Images)
Should I stay or should I Joe?
The most monolithic story of last year's trade period was the Joe Daniher saga, beginning in August with a coffee at Tom Harley's house and ending in October with no deal done before the deadline.
You could ask a dozen people and get a dozen different versions of events, but the result is that Daniher remains on Essendon's list for season 2020, however will have restricted free agent status come trade time unless he signs a new contract.
That means if Daniher still desires a move to the Swans in nine months, he'll be able to accept an offer from Sydney – or, in what is likely a pure hypothetical, any other club – and leave Essendon with a decision whether or not to match.
If the Bombers match, then Daniher would need to move clubs via a trade, or walk and hope to land at Sydney via the pre-season draft, in the same manner that Jack Martin arrived at Carlton in November.
I know what you're thinking – this is quite some time away, so why all the extraneous detail? Well, the other consideration is that, if forced to trade for Daniher, Sydney could find themsleves (yet again) in a tough spot.
They will need plenty of draft currency to match bids for academy prospects Braeden Campbell and Errol Gulden, the former being a likely top-ten pick and the latter a reasonable chance to be in that mix also.
Even if the Swans were to get in a good pick for Tom Papley – whose trade ambitions also fell through last year – they still might not have enough currency to take full advantage of that academy bounty while also satisfying Essendon in a trade.
The unknown in all this is whether Daniher will make any significant progress in returning from injury this year. If he doesn't, then his trade value likely drops, especially given he'd have the pre-season draft up his sleeve.
But if he does, can the Swans afford him? Could he fall back in love with being a Bomber?
The Dons, also, can expect to see speculation around Orazio Fantasia's future at the club continue into the new year.
The Daniher story is one that you (like me) may be a bit tired of already, having not that long ago listened to roughly 40 hours of discussion on it, wedged in between Soap For Tradies adverts.
But whichever way it goes, expect it to be one of the major talking points of 2020.
(Photo by Graham Denholm/Getty Images)
Can Collingwood retain a star trio?
Believed to be in possession of one of the league's tightest salary caps, Collingwood face a difficult task to re-sign three of the most important players on their list.
Contract discussion around Brodie Grundy abounded in 2019, even more than 12 months out from him becoming a free agent (which he'll do this year, if he doesn't sign a new deal).
However, that appears to be one the Pies should wrap up fairly quickly – they've reportedly acquiesced to his demand of a seven-year contract, so you'd expect this to be formally announced sometime before the season begins.
The futures of Jordan De Goey and Darcy Moore, on the other hand, remain less clear, and it seems likely both will go into the season – possibly deep into the season – without deals for 2021 and beyond.
De Goey has shot into near-superstardom since he signed his last deal and is one of the game's most dangerous forward-half players.
He kicked 25 goals before the bye last year and seemed bound for an All Australian guernsey before hamstring injuries robbed him of the chance to put an exclamation point on an excellent first half of the year.
North reportedly offered him $5 million across five seasons just three years ago, and his stock has only risen since then. Expect negotiations to drag on as De Goey looks to extract maximum value from what could be the biggest contract of his career.
(Photo by Dylan Burns/AFL Photos)
Moore, meanwhile, seems likely to drag on simply due to the uncertainty around his durability.
Rated as a potential All Australian by some, he showed great form in patches last year but that was distributed among repeated hamstring injuries, which left him lacking in preparation going into finals, though he was still among Collingwood's best in September.
Moore might be the least valuable of this trio on the open market but his value to the Pies is increased by their dearth of key position players.
Moore is Collingwood's most important tall talent and they simply cannot afford to lose him.
There's bound to be a way to get it done but all three players could be in line for significant paydays, and even if opposition clubs aren't able to snatch one of this weighty trio, enough aggression may well shake something smaller loose.
Which clubs can break their finals droughts?
A handful of clubs – some long removed from September – enter the year just a little more desperate to taste finals action.
St Kilda haven't played post-season football since 2011, going down to Sydney in their last game under Ross Lyon, who sacked four players in his post-game press conference and presumably changed into purple pyjamas on the drive home.
That's eight long years without a sniff of September – the longest finals drought in the league – and St Kilda's proactive offseason made it clear they are desperate for a move back into the top eight.
The Saints landed a quintet of trade targets last October – headlined by Bradley Hill, but also featuring Zak Jones, Dougal Howard, Paddy Ryder and Dan Butler – though they had to farewell Josh Bruce and Jack Steven to get it done.
Despite those losses, St Kilda have set their sights on finals in 2020. Yet, if you were to take a vox pop of the street, I suspect even fans of the club would be pessimistic about their chances.
Carlton have the next longest finals drought, six years in length, but the situation is less dire for them. David Teague still has a honeymoon period to enjoy and fans will hardly riot if they don't make the eight.
Still, every footy fan has within them that kernel of eternal hope – and after witnessing Brisbane's boisterous rise up the ladder last year, Blues fans will dream that they could do something similar.
If they do, Teague will be wearing a navy blue halo around his head for many years to come.
Fremantle's four years out of finals is the next longest drought and the Dockers enter 2020 as one of the league's most intriguing clubs.
After a lengthy Ross Lyon tenure there's a fresh face in the box for the first time in many years – Justin Longmuir, a favourite son who has come home to coach a list that has changed as dramatically as any other (except perhaps Gold Coast) in the last two years.
In that time, Freo have lost two of their most elite talents in Lachie Neale and Bradley Hill, but landed one of the competition's best young key forwards in Jesse Hogan, and brought in three top-ten draft selections this year just past, after taking two in the top five only two seasons prior.
The end result of that switching and swapping is that Fremantle are the third-youngest list in the competition. But they have the new-coach bounce, some terrific young talent, and a rather handy two-time Brownlow Medallist.
Finally, Port Adelaide find themselves only two years separated from September, but could be 2020's most scrutinised side as the matter of Ken Hinkley's future at the club inevitably comes to a head.
Hinkley's contract runs out at the end of this year but contains an automatic one-year extension if he makes it into finals. Hinkley himself has said he expects to lose his position if he doesn't achieve a top-eight finish.
That's not written in stone, of course – but having it written in the media is maybe worse.
Port came achingly close to finals the last two years, but after hitting the draft hard over that period and now possessing only the 12th-oldest list in the league, it seems unrealistic that expectations both internally and externally should be so high.
Hinkley will enter the season under more pressure than any of his contemporaries and in desperate need of some cards up his sleeve.
(Photo by Adam Trafford/AFL Media/Getty Images)
Will 2020 be the AFL's most compromised draft yet?
During the 2019 trade period and as the draft approached, there emerged greater and greater discussion about the nature of the 2020 pool.
In early September, reporter Cal Twomey suggested it could go down as the most compromised draft in history.
Interest in future drafts is, naturally, on the increase since the AFL began allowing clubs to trade future selections.
Clubs now simply cannot afford to operate without a strong understanding of the types and quality of talent that will be available at the draft in 12 months.
Future trades have been a rousing success, at least through the lens of how much the mechanism has been taken up.
Fourteen future selections changed hands in 2015, when clubs were first given that power, but that number has skyrocketed to 40 picks already traded from the 2020 draft.
That includes five first-rounders, the value of which will be heavily influenced by the nature of the talent pool.
If, as some draft watchers fear, much of the best talent is already pre-linked to specific clubs by academy or father-son ties, then otherwise valuable selections may bulge out well beyond the ordinary limits of the first round.
Of 48 players selected for the AFL's All Stars match of 2020 drafts prospects, 17 were already tied to clubs. Per the Herald Sun, one anonymous expert claimed 22 of next year's top 40 prospects were already off the market.
Additional to this is the fact that Gold Coast, as part of an extremely generous assistance package handed down last September, have been given the ability to add academy players directly to their list without needing to match a bid.
That allowed them to add some notable talents in Connor Budarick and Malcolm Rosas Jnr to their list this off-season, and will net them a likely first-round prospect in Alex Davies come 2020.
It's not hard to see where the doom and gloom comes from. But it might be too early to upgrade the DEFCON status just yet.
While there are a lot of academy or father-son players in the mix for next year's draft, only two – Jamarra Ugle-Hagan, tied to the Western Bulldogs, and the formerly mentioned Sydney Academy star Braeden Campbell – appear more likely than not to be top five or ten selections right now.
Depending on how the stocks of different players rise and fall, this draft may not prove that much more compromised than that of 2015, where five of the first 16 players selected were tied to academies.
Regardless, it's bound to bring to ahead the ongoing discussion as to how the AFL's drafting and trading mechanisms should work now and in the future.
They have evolved at a rapid pace and the league's oft-reported interest in introducing extra trade periods mid-season, post-season, post-draft, pre-season and presumably also in between every shortened 15-minute halftime break indicates no forthcoming decline in acceleration.
Regular readers will know it's one of my favourite topics and one you can expect to hear plenty on in 2020.
(AAP Image/Michael Dodge)
Who will be Gillon McLachlan's successor?
It might be one of footy's more under-the-radar plot lines, but the competition is on in the hunt for a second-in-command to succeed Gillon McLachlan, suggesting the current CEO's days are numbered.
McLachlan has been in the position for about five and a half years, a tenure that has seen more than its fair share of drama.
He put major feathers in his cap early, the biggest being a landmark $2.5 billion TV rights deal signed after just over a year in the role, and will for a long time be able to hang his hat on the establishment of the AFLW.
But neither of these silver linings is without its cloud. That TV deal expires at the end of 2022 and there is growing concern that it will be one of decline, a departure from the pattern of consistent expansion and increased profit the league has enjoyed during the professional era.
The competition could face a decision between remaining with its existing broadcast partners in Seven, Foxtel and Telstra, or pivoting towards something newer and more innovative – but that's more likely a hot topic for 2021.
As for the AFLW, the reality is that McLachlan and the AFL have been as much criticised for the lack of support and promotion of the competition as they have been praised for its introduction. Whether the criticism is fair or not, it's certainly unlikely we'll remember McLachlan as the feminist CEO.
Further to these matters, McLachlan's relationship with fans has taken a battering over the last two years over the issues of rule changes and the policing of fan behaviour.
The AFL's intention to tweak rules and increase scoring was a major topic of discussion during the 2018 season but proved only to generate significant angst for no reward, as clubs scored on average three points fewer per game in 2019 than the year previous, hitting the lowest level since 1968.
The competition also copped significant flack this year past for what appeared to be increased attempts to police crowd behaviour. This debacle proved to be the proverbial orphan, and any genuine clarity over the who or why of the matter was never really achieved.
One wonders, then, what a presidential approval rating of McLachlan's tenure would look like, were it to be conducted – but the gut feel is it would be unfavourable. And the rumblings about a successor adds a genuine heft to the speculation.
Essendon CEO Xavier Campbell recently knocked back an offer to become McLachlan's 2IC and presumptive CEO-in-waiting, announcing his recommitment to the Bombers at Essendon's annual general meeting.
Richmond CEO Brendon Gale is the other name that has been regularly touted – and he would be a fine appointment if you feel like asking me about it.
Right now it could be fairly labelled the biggest story that nobody's talking about – but in 12 months that will no longer be true.
(AAP Image/Julian Smith)
And of course… who's going to win it?
Premierships are what all our speculation boils down to in the end, and the race is as much alive in this season as it has been in any other.
Richmond, of course, have won two of the past three flags and are deservedly the early favourites with the bookmakers on that basis.
It's hard to argue against them after such incredible dominance in the grand final – a standout performance in a still otherwise stupendous finals series – but it would be harder still if they were expecting to retain the services of the recently retired Alex Rance.
While the Tigers have scratched off one of their biggest names in pen now rather than pencil, their closest rivals and 2018 premiers West Coast have added Tim Kelly, a top-five Brownlow finisher in 2019.
Kelly cost the Eagles more arms and legs than we knew they had, but it will all be worth it if he can take them to another flag, and at the very least justifiable if he can get them within striking distance of that goal.
Despite owning the last three premierships, Richmond and West Coast haven't met in a final in that time – and haven't met in one ever, in fact – and haven't played each other twice in a season since 2009.
That will change in 2020, with the Tigers and Eagles to do battle in Rounds 5 and 14 this year. Could they meet a third time in September, as well? It's a salivating prospect.
Of course, if recent years tell us anything it should be to widen our gaze.
All clubs would believe they're capable of moving up the ladder and at least ten should be thinking of themselves as possible premiership contenders.
Two hundred and seven games from now, one – and only one – will stand above the rest. Welcome to 2020.
Josh Elliott is a rusted-on North Melbourne tragic with a penchant for pun headlines - and also abnormal alliteration, assuredly; assuming achievability. He once finished third in a hot chilli pie eating contest.


The Plymouth, Devonport & South Western Junction Railway was incorporated by an Act of Parliament in August 1883, with work on the 22½-mile route from Lydford to Devonport starting in March 1887. At its northern end it ran alongside the Launceston & South Devon's line, dating from 1865.
The PD&SWJ made a junction with the London & South Western Railway at Devonport, creating a through route eastwards. On its approach it passed through two tunnels - Ford (373 yards) and Devonport Park (530 yards). These were separated by a deep cutting in which Albert Road Halt would eventually be built. This though was 16 years away when the first trains ran on 2nd June 1890.
A stone's throw from King's Road Station was the attractive masonry entrance to Devonport Park Tunnel which faces south-east. Like Ford, it was built for two tracks. The tunnel has stone sidewalls with a brick arch, and curves to the north. Today the Up side of the structure houses a buried sewer pipe. Generously sized refuges are provided throughout.
The shorter Ford Tunnel runs beneath Victoria Place for much of its length. It is lined entirely in stone but features brick sections at both ends. The northern portal is also brick. Beyond it, the approach cutting has been infilled to accommodate blocks of flats.