Skip to main content

Superagers' 'Secret Ingredient' May Be the Growth of New Brain Cells

1 week 2 days ago
alternative_right shares a report from ScienceAlert: According to a study of 38 adult human brains donated to science, superagers -- people who retain exceptional memory as they age -- have roughly twice as many immature neurons as their peers who age more typically. Moreover, people with Alzheimer's disease show a marked reduction in neurogenesis compared to a normal baseline. [...] Led by researchers at the University of Illinois Chicago, the team set out to examine a variety of postmortem hippocampal tissue samples to see if they could identify markers of neurogenesis -- and if different groups had any notable differences. The brain samples were donated from five groups: eight healthy young adults, aged between 20 and 40; eight healthy agers, aged between 60 and 93; six superagers, aged between 86 and 100; six individuals with preclinical Alzheimer's pathology, aged between 80 and 94; and 10 individuals with an Alzheimer's diagnosis, aged between 70 and 93. The young healthy adult brain tissue was first analyzed to establish the neurogenesis pathways in the adult brain. Then, they analyzed 355,997 individual cell nuclei isolated from the hippocampus, searching for three different stages of cell development: Stem cells, which can develop into neurons; neuroblasts, which are stem cells in the process of that development; and immature neurons, on the verge of functionality. The results were striking. "Superagers had twice the neurogenesis of the other healthy older adults," [says neuroscientist Orly Lazarov of the University of Illinois Chicago]. "Something in their brains enables them to maintain a superior memory. I believe hippocampal neurogenesis is the secret ingredient, and the data support that." That's an interesting result on its own, but the data from the individuals with preclinical Alzheimer's pathology and Alzheimer's diagnoses is where the real meat of the study sits. In the preclinical group, subtle molecular changes hinted that the system supporting new neuron growth was beginning to falter. In the Alzheimer's group, a clear drop in immature neurons was evident. A genetic analysis of the nuclei also showed that superager neural cells have increased gene activity linked to stronger synaptic connections, greater plasticity, and brain-derived neurotrophic factor, a critical protein for neural survival, growth, and maintenance. Taken together, these three things can be interpreted as resilience. The research has been published in the journal Nature.

Read more of this story at Slashdot.

BeauHD

CodeSOD: Blocked Up

1 week 2 days ago

Agatha has inherited some Windows Forms code. This particular batch of such code falls into that delightful category of code that's wrong in multiple ways, multiple times. The task here is to disable a few panels worth of controls, based on a condition. Or, since this is in Spanish, "bloquear controles". Let's see how they did it.

private void BloquearControles() { bool bolBloquear = SomeConditionTM; // SomeConditionTM = a bunch of stuff. Replaced for clarity. // Some code. Removed for clarity. // private System.Windows.Forms.Panel pnlPrincipal; foreach (Control C in this.pnlPrincipal.Controls) { if (C.GetType() == typeof(System.Windows.Forms.TextBox)) { C.Enabled = bolBloquear; } if (C.GetType() == typeof(System.Windows.Forms.ComboBox)) { C.Enabled = bolBloquear; } if (C.GetType() == typeof(System.Windows.Forms.CheckBox)) { C.Enabled = bolBloquear; } if (C.GetType() == typeof(System.Windows.Forms.DateTimePicker)) { C.Enabled = bolBloquear; } if (C.GetType() == typeof(System.Windows.Forms.NumericUpDown)) { C.Enabled = bolBloquear; } } // private System.Windows.Forms.GroupBox grpProveedor; foreach (Control C1 in this.grpProveedor.Controls) { if (C1.GetType() == typeof(System.Windows.Forms.TextBox)) { C1.Enabled = bolBloquear; } if (C1.GetType() == typeof(System.Windows.Forms.ComboBox)) { C1.Enabled = bolBloquear; } if (C1.GetType() == typeof(System.Windows.Forms.CheckBox)) { C1.Enabled = bolBloquear; } if (C1.GetType() == typeof(System.Windows.Forms.DateTimePicker)) { C1.Enabled = bolBloquear; } if (C1.GetType() == typeof(System.Windows.Forms.NumericUpDown)) { C1.Enabled = bolBloquear; } } // private System.Windows.Forms.GroupBox grpDescuentoGeneral; foreach (Control C2 in this.grpDescuentoGeneral.Controls) { if (C2.GetType() == typeof(System.Windows.Forms.TextBox)) { C2.Enabled = bolBloquear; } if (C2.GetType() == typeof(System.Windows.Forms.ComboBox)) { C2.Enabled = bolBloquear; } if (C2.GetType() == typeof(System.Windows.Forms.CheckBox)) { C2.Enabled = bolBloquear; } if (C2.GetType() == typeof(System.Windows.Forms.DateTimePicker)) { C2.Enabled = bolBloquear; } if (C2.GetType() == typeof(System.Windows.Forms.NumericUpDown)) { C2.Enabled = bolBloquear; } } // Some more code. Removed for clarity. }

This manages two group boxes and a panel. It checks a condition, then iterates across every control beneath it, and sets their enabled property on the control. In order to do this, it checks the type of the control for some reason.

Now, a few things: every control inherits from the base Control class, which has an Enabled property, so we're not doing this check to make sure the property exists. And every built-in container control automatically passes its enabled/disabled state to its child controls. So there's a four line version of this function where we just set the enabled property on each container.

This leaves us with two possible explanations. The first, and most likely, is that the developer responsible just didn't understand how these controls worked, and how inheritance worked, and wrote this abomination as an expression of that ignorance. This is extremely plausible, extremely likely, and honestly, our best case scenario.

Because our worse case scenario is that this code's job isn't to disable all of the controls. The reason they're doing type checking is that there are some controls used in these containers that don't match the types listed. The purpose of this code, then, is to disable some of the controls, leaving others enabled. Doing this by type would be a terrible way to manage that, and is endlessly confusing. Worse, I can't imagine how this behavior is interpreted by the end users; the enabling/disabling of controls following no intuitive pattern, just filtered based on the kind of control in use.

The good news is that Agatha can point us towards the first option. She adds:

They decided to not only disable the child controls one by one but to check their type and only disable those five types, some of which aren't event present in the containers. And to make sure this was WTF-worthy the didn't even bother to use else-if so every type is checked for every child control

She also adds:

At this point I'm not going to bother commenting on the use of GetType() == typeof() instead of is to do the type checking.

Bad news, Agatha: you did bother commenting. And even if you didn't, don't worry, someone would have.

.comment { border: none; } [Advertisement] Picking up NuGet is easy. Getting good at it takes time. Download our guide to learn the best practice of NuGet for the Enterprise.
Remy Porter