Year end is rapidly approaching. It's now time to consider making some moves that will lower your 2016 tax bill and get you into position for tax savings in future years. This article offers some year-end planning tips for individuals — while keeping the results of the recent election in mind.
The 2016 federal income tax rate picture for individuals is the same as last year, except the rate brackets have been adjusted slightly for inflation. Specifically, the tax rates remain 10%, 15%, 25%, 28%, 33% and 35%. The highest-income individuals face a top rate of 39.6%, but that rate only affects singles with 2016 taxable income above $415,050, married joint-filing couples with income above $466,950, and heads of households with income above $441,000.
It's unknown when (or if) these tax reform proposals will be enacted. With the Republicans in control of Congress and the White House, it wouldn't be unreasonable to expect some of the proposals to pass and go into effect next year, however.
Under current tax law, high-income individuals may be subject to an additional 0.9% Medicare tax on wages and self-employment (SE) income. The 0.9% tax is charged on salary and/or net SE income above $200,000 for an unmarried individual and salary and/or net SE income above $250,000 for a married joint-filing couple.
Net investment income, including long-term capital gains and dividends, may also be hit with the 3.8% Medicare surtax, also known as the net investment income tax (NIIT). However, the NIIT doesn't apply unless your modified adjusted gross income (MAGI) exceeds $200,000 if you are unmarried or $250,000 if you are married and file jointly with your spouse. The NIIT applies to the lesser of your net investment income or the amount by which your MAGI exceeds the applicable threshold.
Note: The President-elect's proposed 100-day plan would repeal the Affordable Care Act (ACA). If his plan succeeds, the ACA-related surtaxes may be repealed in 2017.
Under the phaseout rule for itemized deductions, you can potentially lose up to 80% of your write-offs for mortgage interest, state and local taxes, charitable donations and miscellaneous itemized deductions. However, the phaseout rule applies only if your adjusted gross income (AGI) exceeds the applicable threshold.
For 2016, the AGI thresholds for the itemized deduction phaseout are $259,400 for singles, $311,300 for married joint-filing couples and $285,350 for heads of households. The total amount of your affected itemized deductions is reduced by 3% of the amount by which your AGI exceeds the applicable threshold. However, the reduction can't exceed 80% of the affected deductions that you started off with.
Under the phaseout rule for personal and dependent exemptions, your write-offs can be reduced or even completely eliminated. However, the phaseout rule applies only if your AGI exceeds the applicable threshold. The thresholds are the same as for the itemized deduction phaseouts listed above.
Note: The President-elect's tax plan would eliminate personal and dependent exemptions.
1. Higher education tuition deduction. This write-off can be as much as $4,000, or $2,000 for higher-income individuals.
2. Tax-free treatment for forgiven principal residence mortgage debt. Forgiven debts generally count as taxable cancellation of debt (COD) income. However, a temporary exception applies to COD income from canceled mortgage debt used to acquire a principal residence. Under the temporary rule, up to $2 million of COD income from principal residence acquisition debt that's canceled from 2007 to 2016 can be treated as a tax-free item.
3. $500 credit for energy-efficient home improvements. Homeowners can claim a tax credit of up to $500 for certain energy-saving improvements to a principal residence. The $500 cap must be reduced by any credits claimed in earlier years.
1. Exceed the standard deduction allowance. If your total itemized deductions for 2016 would be close to the standard deduction amount, consider making enough additional expenditures for itemized deduction items to exceed this year's standard deduction. That will lower this year's tax bill.
For 2016, the standard deduction is $12,600 for married joint-filing couples, $6,300 for singles and $9,300 for heads of households. For 2017, the standard deduction amounts will be $12,700, $6,350 and $9,350 under current law.
Note: The standard deduction amounts for 2017 could be significantly higher if tax reform legislation is approved. If you expect an increase, plan to itemize this year, and then claim the more generous standard deduction next year. Your taxes will be lower in both years.
2. Consider prepaying deductible expenditures. If you itemize deductions, accelerating some deductible expenditures into this year to produce higher 2016 write-offs makes sense if you expect to be in the same or lower tax bracket next year. That's more likely with Republican tax reform proposals now on the table.
Perhaps the easiest deductible expense to prepay is included in the house payment due on January 1. Accelerating that payment into this year will give you 13 months of deductible home mortgage interest in 2016. You can use the same prepayment drill with a vacation home. However, if you prepay this year, you'll have to continue the policy in future years. Otherwise, you'll have only 11 months of interest in the first year you stop using this strategy.
Another option is to prepay state and local income and property taxes that are due early next year. Prepaying those bills before year end can decrease your 2016 federal income tax bill, because your itemized deductions will be that much higher.
Miscellaneous deductions — for investment expenses, job-hunting expenses, fees for tax preparation and advice, and unreimbursed employee business expenses — count only to the extent they exceed 2% of AGI. If you can bunch these kinds of expenditures into a single calendar year, you'll have a greater chance of clearing the 2%-of-AGI hurdle and receiving some tax savings.
Note: The prepayment drill can be a bad idea if you owe the alternative minimum tax (AMT). That's because write-offs for state and local income and property taxes, as well as for miscellaneous itemized deductions, are completely disallowed under the AMT rules. Therefore, prepaying these expenses may not save much tax for people who owe AMT.
3. Prepay tuition bills. If your 2016 AGI qualifies you for the American Opportunity credit (maximum of $2,500 per eligible student) or the Lifetime Learning credit (maximum of $2,000 per family), consider prepaying tuition bills that aren't due until early 2017 if it generates a bigger credit on this year's tax return. Specifically, you can claim a 2016 credit based on prepaying tuition for academic periods that begin in January through March of next year.
$160,000 to $180,000 for married joint filers.
$111,000 to $131,000 for married joint filers.
If your MAGI is too high to be eligible for these higher education credits, you might still qualify to deduct up to $2,000 or $4,000 of tuition costs. If so, consider prepaying tuition bills that aren't due until early 2017 if that would result in a bigger deduction this year. As with the credits, your 2016 deduction can be based on prepaying tuition for academic periods that begin in the first three months of 2017.
4. Defer income recognition. It may also be beneficial to defer some taxable income from this year into next year if you expect to be in the same or lower tax bracket in 2017 (which, again, is more likely with Republican tax reform proposals on the table). For example, if you're in business for yourself and a cash-method taxpayer, you can postpone taxable income by waiting until late in the year to send out some client invoices. That way, you won't receive payment for them until early 2017.
You can also defer taxable income by accelerating some deductible business expenditures into this year. Both moves will postpone taxable income from this year until next year, when it might be taxed at lower rates. Deferring income can also be helpful if you're affected by unfavorable phaseout rules that reduce or eliminate various tax breaks, such as the child tax credit or the higher education tax credits.
5. Sell loser underperforming stocks held in taxable accounts. By selling off loser investments (currently worth less than what you paid for them) held in taxable brokerage accounts, you may be able to lower your 2016 tax bill, because you can offset the resulting capital losses against capital gains from earlier in the year.
If losses exceed gains, you'll have a net capital loss for the year. You can deduct up to $3,000 of net capital loss (or $1,500 if you are married and file separately) on this year's return against ordinary income from salary, self-employment activities, alimony, interest, and other types of income. Any excess net capital loss is carried forward to future years and puts you in position for tax savings in 2017 and beyond.
6. Consider postponing Roth IRA conversions until next year. The best scenario for converting a traditional IRA into a Roth account is when you expect to be in the same or higher tax bracket during retirement. Even if the tax laws are reformed in 2017, you might eventually wind up in a higher tax bracket during retirement, so conversions can still be a smart tax-planning move.
But there's a current tax cost for converting, because the conversion is treated as a taxable liquidation of your traditional IRA followed by a nondeductible contribution to the new Roth account. If you don't convert until next year, the tax cost could be much lower if tax rates are cut by tax reform legislation.
You've reached age 59-1/2 or become disabled or died.
With qualified withdrawals, you (or your heirs if you pass on) avoid having to pay higher tax rates that might otherwise apply in future years. While the current tax hit from a Roth conversion is unwelcome, it could be a relatively small price to pay for future tax savings.
7. Donate appreciated stock to charity. If you own appreciated stock or mutual fund shares that you've held for over a year, consider donating them to IRS-approved charities. If you itemize deductions, you can generally claim a deduction for the market value at the time of the donation and avoid any capital gains tax hit.
On the other hand, don't donate stocks or mutual fund shares that have decreased in value while you've owned them. Sell the underperforming investments, book the resulting capital losses and then donate the cash proceeds from the sales. That way, you can generally claim an itemized deduction for the cash donation while keeping the tax-saving capital loss for yourself.
8. Make charitable donations from IRAs. IRA owners and beneficiaries who have reached age 70-1/2 are permitted to make cash donations totaling up to $100,000 to IRS-approved public charities directly out of their IRAs. These so-called qualified charitable distributions (QCDs) are federal-income-tax-free, but you can't claim an itemized deduction for the charitable donation. That's okay, because the tax-free treatment of QCDs equates to an immediate 100% federal income tax deduction without having to worry about restrictions that can delay itemized charitable write-offs.
QCDs have other tax advantages, too. If you're interested in taking advantage of the QCD strategy for 2016, you'll need to arrange with your IRA trustee for money to be paid out to one or more qualifying charities before year end.
These are just some of the tax-planning strategies available to help individuals lower their taxes. Before implementing any of these strategies, consult your tax advisor to discuss the details and limitations, as well as other creative tax-saving alternatives. Your tax advisor is closely monitoring any tax law changes and will let you know when (and if) circumstances change.


This research was initiated as a follow-up study to the research of Dr Chris Brooks conducted between 2001 and 2005. The research examined the foraging behaviour, spatial distribution and adaptability to environmental changes of plains zebra (Equus quagga) in the Makgadikgadi, Botswana, following the construction of an electrified fence in 2004. Seasonal changes in resource availability were documented and GPS collars were used to record detailed movement data. The ongoing population dynamics of the zebra population were recorded throughout the study and the impact of the fence on the migratory zebra population was assessed where possible.
The results of this study show that zebra are highly adaptable and have the flexibility to respond to significant environmental changes, yet they need to continue to be able to move freely within the Makgadikgadi. Initial results suggest that the Makgadikgadi fence has had a positive impact on the zebra population but further monitoring is needed to assess the long-term impacts of fencing on the Makgadikgadi ecosystem and the resident wildlife. These findings add to those of Brooks (2005) and further our understanding of the resource requirements, spatial distribution and foraging behaviour of zebra in the Makgadikgadi.
During the research period, the Makgadikgadi was subject to significant environmental variability which influenced the spatial distribution and foraging behaviour of zebra. The Makgadikgadi experienced significant unseasonal rainfall in June 2009 which had a major effect on the location of the zebra herds within the Makgadikgadi. In addition, the Boteti River started to flow again in 2009 after a 20-year hiatus, significantly changing water availability for wildlife and livestock. Finally, a large bush fire in September 2010 removed nearly all of the available forage biomass, significantly influencing movement patterns and foraging behaviour. In addition to these one-off events, the Makgadikgadi experienced above average rainfall from 2008 to 2011 which led to increased forage growth across the Makgadikgadi when compared to the pre-fence study period.
Seasonal water availability determined the spatial distribution of zebra in the Makgadikgadi while forage quality and quantity was both spatially and temporally variable. The movement patterns of zebra reflected resource availability at multiple spatial scales and showed that zebra follow an area-restricted search strategy. By adapting fine-scale foraging patterns to the quality and quantity of resources available, zebra were able to improve foraging efficiency. Zebra adopted an unselective foraging strategy at the feeding site, maximising intake rate and reducing the temporal and energetic costs of foraging during both a typical wet season and an atypical dry season. However, sites with increased forage dry matter were preferred in two of the three available habitats during the typical wet season. Pan grassland provided the highest quality forage with zebra taking advantage of fresh rains to move further into the pan grassland to forage. The mixed woodland and pan grassland habitats in CT/11 were used extensively throughout the wet season and were particularly important towards the end of the wet season as waterholes dry up.


A House Newsletter has been produced by the Communications Ambassadors to inform students and staff of some of the things that have been happening in school this term. They have been working hard to produce articles for it and hope to produce it on a regular basis next year.
The newsletter can be accessed by following this link to the Communications Ambassadors page.


It's the end of a Saturday morning hot yoga class. On the mat to my left, my son is lying on his back in some sort of supine crow position, his arms crossed over his chest, his hair plastered to his forehead and a small smile on his face. His eyes are closed—the picture of post-yoga serenity. On the mat to my right, my daughter is eyeing the door and the cool hallway while gulping water and fanning her beet red cheeks.
I've been doing yoga for five years now. I'm not a "yogi"—I'm a not-very-flexible 40-something who likes hot yoga because the studio is warm on a cold, rainy day. If you were my child and new to yoga, I'd suggest you watch somebody else (anybody but me, really) for clues about how to do the poses properly. More on that in a minute.
The first time, my son and I were in a class filled with more bodies than I've ever seen in a studio. Mat space was at a premium. I was next to my son on one side and he was within 12 inches of a stranger on his other side.
First, my son does not believe in breaks. And second, the instructor told him she liked to teach a hard class and started out with "yoga crunches" for days. My son glanced at me about two minutes into class and it was obvious he was taking it as a personal challenge. He cranked out every pose and push-up he could manage.
The next day, it was my daughter's turn. To me, she seems like the quintessential yoga person. She likes to go at her own speed and she told me she was going into class with no expectations.
Saturday morning was the first class we all took together. I reminded my son to breathe and relax and suggested my daughter watch someone with more skill than myself. They did not do these things. My son still took every pose as a personal challenge. My daughter followed me.
After class, my son stayed a few extra minutes, enjoying the rest after a hard class (It's also possible he couldn't get up yet, because, yoga as a personal challenge). My daughter bolted for the cooler hall. She told me that yoga was fun, but she's not sure she really likes to sweat that much.
We all agreed that it was an interesting way to stretch all our bodies and our brains. My son said he likes it because if makes him feel calm, which surprised him. My daughter likes the breathing and thinks she might get better at push-ups—if she decides to sweat more.
I learned that my kids approach a new experience in their own unique ways, no matter what I suggest. And it was a good reminder that my daughter will continue to watch me, even amongst louder voices and more experienced people. She might not always admit it, but she is still looking to me for guidance.
We've yet to see if yoga will be either of their "thing." We all like that it's something we can do together. One of my favorite aspects of parenting is watching my kids gain confidence in their abilities, and I'd love to see that transformation in the yoga studio. But the reality of life, time and my kids' love for other sports may make practicing together regularly a challenge. And that's OK. They know how yoga makes them feel. Maybe now or someday later, when they need a space to take a breath, they'll find their feet grounded in a yoga pose.
No Comments on "That Time I Tried Hot Yoga With My Kids"


text:
Reviewing Darwin's Doubt Chapters 5-6
December 30, 2015 December 3, 2016 / kevingdrendel
© Can Stock Photo Inc. / radiantskies
I received the book, Darwin's Doubt, by Stephen C. Meyer, as a gift and have been reading and reviewing it on this blog. I learn better by processing what I read, and processing, for me, means writing.
In the first installment, I breezed through the first four chapters of the book in which Meyer introduces the problem of "Darwin's doubt", the Cambrian Explosion. Darwin knew the sudden proliferation of life forms in the Cambrian era was a problem to his theory, but hoped future discoveries would prove his theory right.
The Theory of Evolution necessarily requires long periods of gradual change in which natural selection works to weed out unproductive traits in favor of productive traits, slowly and almost imperceptibly evolving from simple life forms to more complex life forms and from one life form to another life form.
The Cambrian "explosion" contraindicated Darwin's Theory of Evolution. Darwin, himself, highlighted that fact, but he assumed that future discoveries would fill in the missing gaps that did not appear in the fossil record in his time. Meyer traces the most relevant history since Darwin's time to "tell the rest of the story", which turns out does not confirm his assumption. In fact, subsequent discoveries accentuate the problem.
In the next two chapters, Meyer explains how the scientific community has attempted to fill that gap with solutions that explain away the gap. Rather than question Darwin's theory, they have moved to the molecular record to vindicate the theory to which the scientific community long ago committed. Meyer carefully explains how the Cambrian gap and less remarkable (but no less significant) Precambrian gap are not bridged by molecular analysis or anatomical analysis.
As a back drop, Meyer highlights the obvious truism that, since there is only one history of life, one history of evolution, the evidence ought to begin to line up to reveal one "tree of life" that Darwin envisioned. Even we if we do not have the full picture, and even with gaps, various evidence from various angles should begin to fill in those gaps, and patterns should begin to emerge.
With no evidence of bridges from Precambrian life forms to Cambrian life forms, scientists began looking for a "deep divergence" somewhere in the more distant past. Presuming that the fossil record is incomplete and proof of the evolutionary progression in the fossil record must be lost, scientists began looking at molecular structures for evidence of the missing progression deep under the fossil structures we see. The assumption was that the progression missing in the fossil record would show up hidden in molecular structures. They supposed that the evidence that does not readily appear in fossil remains must be in hidden in the molecular level.
The deep divergence theory proposes that changes only "seemed" to appear suddenly. The deep divergence hypothesis postulates that the evolutionary progressions must have been at the molecular level, envisioning "a 'long fuse' of animal evolution and diversification lasting many millions of years leading up to what only looks like an 'explosion' of animal life in the Cambrian, but this history was hidden from the fossil record." They propose "a long period of undetected or cryptic evolution," and molecular analysis was thought to be the way to identify the missing progression. (p. 101)
The assumption has been that molecular evidence will fill in the gaps and, together with the fossil record, reveal the "canonical tree of life". The tree is "canonical" because there can only be one. There is only one history of evolution; there can be only one tree tracing its origin. The term also reflects the orthodoxy that has become Darwinism since the Origin of Species was first published.
If evolution occurred at the anatomical level, it surely occurred at the molecular level. Molecular evolution, therefore, should parallel anatomical evolution, and tracing molecular evolution back should give us clues that may fill in the fossil record gaps, so the theory goes.
Linus Pauling and Emile Zuckerkandl pioneered the molecular clock analysis which became the mechanism for tracing molecular structure back to the original evolutionary divergence of life. Meyer's book examines the studies by Gregory A. Wray and others. Wray's study led to a determination that the common ancestor for animal forms of life appeared 1.2 million years ago.
Another major study led by Douglas Erwin, however, reached the conclusion that the common ancestor dates to 800 million years ago, a not insignificant 400 million year swing. Many other studies have been done leading to more divergent and, therefore, more inconclusive results (pegging the common ancestor between 100 million and 1.5 billion years ago). One such study done by Dan Graur and William Martin concluded with 95% accuracy (sarcasm noted) that the divergent date for certain animals falls within a 14.2 billion year window – "more than three times the age of the earth and clearly a meaningless result." (p. 107)
Meyer observes that scientists who assume the evolutionary theory of life who are doing molecular analysis are forced to ignore these results because they produce obviously impossible conclusions. Molecular studies, no matter what the starting point, should be traceable back to a single point of origin, but they do not. As a result, molecular analysis has led scientists to cherry pick the evidence that conforms to the results they think the studies should reveal based on evolutionary theory "to avoid grossly contradictory results". (p. 107)
All of this is not to say that scientists might not stumble on the proverbial tree of life, but all of the best efforts to date have failed. They have only produced wildly inconsistent results.
Stephen Meyer concluded the review of the molecular analyses up to the present time by saying, "These studies… assume, rather than demonstrate, the theory of universal common descent." (p. 109) Some scientists, like Andrew Smith and Kevin Peterson, candidly admit "the idea that there is a universal molecular clock ticking away has long since been discredited." Whether the "grossly contradictory results" of molecular clock analysis should be seen as discrediting evolutionary theory as a whole, it certainly provides no evidence to trump the fossil record.
The fact is, however, that most scientists are committed to the Darwinian model in spite of failed attempts to explain the fossil record gap. Common descent of all animal forms is assumed as fact (though it has not been demonstrated in fact); and the effort of modern scientists is, therefore, focused on finding evidence to fit that model, even if it must be "helped" along.
In this vein, computer software used to analyze data is written to produce trees showing common ancestors and branching relationships "regardless of the extent to which the genes analyzed may or may not differ." (p. 110) So sure of the evolutionary theory are most modern scientists, that they set up their analytic models to produce the results they are assured certain should occur, based on their pressupositions.
Some, like Simon Conway Morris, a leading evolutionary biologist, however, candidly suspect that deep divergence hypothesis is not a genuine answer to the Cambrian problem.
Meanwhile, Darwin's tree of life continues to be the only paradigm accepted by modern science. The BBC called it the "Darwinian Sistine Chapel" in a 2009 documentary commemorating the life and legacy of Charles Darwin. Richard Dawkins boldly proclaimed that a competitive look at genetic sequences and "anatomical resemblances throughout all living kingdoms" reveals the family tree "thoroughly and convincingly laid out". (p. 115) Jerry Coyne also claims that "gene sequences independently confirm the same set of evolutionary relationships – the same basic tree – established from the analysis of anatomy." (Id.)
In reading Meyer's book, one wonders what tree (or actually which tree) they are looking at.
As a layman, it is difficult to understand the dogmatic orthodoxy of the modern scientific community in light of clearly contravening evidence. Meyer goes to some length to switch back and forth between molecular and anatomical analyses to show how contradictory and inconclusive the studies are. The results are so conflicting that a few people are breaking from the ranks to concede that the tree concept has not proven out: the evidence suggests that "the evolution of animals and plants isn't exactly tree-like." (Quoting a 2009 article in the New Scientist, p. 119) Michael Syvanen even concluded from his own studies that his analysis "annihilated the tree of life. It's not a tree anymore, it's a different topology altogether."
The molecular clock analysis fails to show a single divergence point, a necessary corollary to the concept of a tree with branches shooting off from the trunk (a concept that is central to Darwinism). Linus Pauling and Emile Zuckerkandl, the fathers of the molecular clock concept, believed (rightly so) that studies of comparative anatomy and DNA sequences should generate similar phylogenetic trees. If they could match up the anatomical and DNA pictures, they believed "the" tree would begin to become evident.
Since that time, however, the studies have repeatedly shown that phylogenetic "trees" drawn from anatomy and the "trees" drawn from molecules do not match and often contradict each other. Meyer points out the obvious when he says that different "stories" (the anatomical and molecular stories) may be false, but they cannot both be true. The bold statements by Dawkins, Coyne and Atkins that the anatomical and molecular data show an unambiguously similar, single tree, therefore, are "manifestly false". (p.124)
Trees created by using various anatomical data points lead to wildly divergent results compared to trees created using various molecular data points. The one "canonical tree of life", if indeed there is one, should begin to come into focus as any of the data points, anatomical or molecular, are traced back, but that is not what we see. It should not matter the starting point; the pathways back to the origin should converge – but they don't.
Trying to draw a single tree using only anatomical data is equally frustrating. Trees constructed using different developmental and anatomical characteristics often conflict, as do attempts to trace back molecules to an origination point. Meyer walks through some examples of conflicting studies using anatomical and developmental characteristics to show how trees created using different characteristics yield conflicting results – and not just conflicting results, but mutually exclusive relationships among the various characteristics.
Meyer ends this portion of the analysis by showing that trees derived from different anatomical starting points produce conflicting results as to trees derived from different molecular starting points, and trees derived from anatomical starting points, as it should be expected at this point, differ from trees derived from molecular starting points. The statements of Dawkins and Coyne that suppose one tree clearly standing when all the analysis is applied simply does not exist. The statement of Peter Atkins, that "there is not a single instance of the molecular traces of change being inconsistent with our observations of whole organisms" (p. 115) is utterly untrue.
The theme of chapters 5 and 6 is that there is only one history of life and so there can be only one tree of life, if the elusive "canonical tree" even exists. That one history should yield evidence of one common ancestor occurring at one point in time from which all subsequent life forms grew and evolved. This must necessarily be true if Darwinism is true. Whether we study anatomical traits or molecular traits, the evidence should reflect one story, but it does not.
"[T]he animal phyla consistently defy attempts to arrange them into the pattern of a single tree." (p. 132)
Meyer concludes the 6th chapter stating that "these contradictory results call into question the existence of a canonical tree of animal life." (p.134) He says, "the evidence should converge on a common family tree – if indeed we are looking at evidence of true history. " (p. 135) So far, through the first six (6) chapters of Darwin's Doubt, the originating divergence point and Darwin's tree of life, itself, remain "lost" to science. In the next blog article we will explore other solutions that have been tried, and failed.
Cambrian explosion, Darwin's Doubt, Darwinism, DNA, evolution, molecular analysis, molecular clock, tree of life
← Reviewing Darwin's Doubt Chapters 1-4
Reviewing Darwin's Doubt Chapters 7-8 →
3 thoughts on "Reviewing Darwin's Doubt Chapters 5-6"
boammarruri
I recently read the book as well and your book review captures well the main arguments. It's a well researched book that Meyer wrote, completely different to Dawkin's The greatest show on earth, and Coyne's Why evolution is true. I was surprised as well that the evidence for a universal tree of life is inconsistent and contradictory. Listening solely to Darwinian popularizer one would think otherwise.
Pingback: Reviewing Darwin's Doubt Chapters 7-8 | Perspective

redpajama_set_name: RedPajamaCommonCrawl


text:
Aroga camptogramma is a moth of the family Gelechiidae. It is found in North America, where it has been recorded from Texas and Arizona.

The wingspan is 8–9 mm. The forewings are dark purplish-fuscous with a moderate rather irregularly edged white streak along the dorsum from the base to near the tornus, then proceeding rather obliquely across the wing to the costa. The hindwings are grey, paler anteriorly.

References

Moths described in 1931
Aroga
Moths of North America

redpajama_set_name: RedPajamaWikipedia


text:
Q: How to remove unused images from an Xcode project I'm following this link to find the unused images from an xcode project but they are not working well for me. I tried Rob's answer and Roman's answer but they give me all the png images.
I tried to use the tool it also giving me all png images
EDIT
The way Im using script
1)i copy script and paste it in the terminal and press Enter.
2) save the script in txt file and in terminal i type sh myscript.txt

A: I have created a python script to identify the unused images in a swift project: 'unused_assets.py' @ gist, which can be easily tweaked for an objective-c project as yours.
The script can be used like this:
python3 unused_assets.py '/Users/DevK/MyProject' '/Users/DevK/MyProject/MyProject/Assets/Assets.xcassets'

Here are few rules to use the script:

*

*It is important to pass project folder path as first argument, assets folder path as second argument

*It is assumed that all the images are maintained within Assets.xcassets folder and are used either within swift/ objective-c files or within storyboards

Limitations in first version:

*

*Doesn't work for objective c files, but can be tweaked to achieve expected behavior as specified in comment in below code

I will try to improve it over the time, based on feedback, however the first version should be good for most.
Here is the code. I tried to make the code self explanatory by adding appropriate comments to each important step, let me know if you still need more details.
# Usage e.g.: python3 unused_assets.py '/Users/DevK/MyProject' '/Users/DevK/MyProject/MyProject/Assets/Assets.xcassets'
# It is important to pass project folder path as first argument, assets folder path as second argument
# It is assumed that all the images are maintained within Assets.xcassets folder and are used either within swift files or within storyboards

"""
@author = "Devarshi Kulshreshtha"
@copyright = "Copyright 2020, Devarshi Kulshreshtha"
@license = "GPL"
@version = "1.0.1"
@contact = "kulshreshtha.devarshi@gmail.com"
"""

import sys
import glob
from pathlib import Path
import mmap
import os
import time

# obtain start time
start = time.time()

arguments = sys.argv

# pass project folder path as argument 1
projectFolderPath = arguments[1].replace("\\", "") # replacing backslash with space
# pass assets folder path as argument 2
assetsPath = arguments[2].replace("\\", "") # replacing backslash with space

print(f"assetsPath: {assetsPath}")
print(f"projectFolderPath: {projectFolderPath}")

# obtain all assets / images
# obtain paths for all assets

assetsSearchablePath = assetsPath + '/**/*.imageset'  #alternate way to append: fr"{assetsPath}/**/*.imageset"
print(f"assetsSearchablePath: {assetsSearchablePath}")

imagesNameCountDict = {} # empty dict to store image name as key and occurrence count
for imagesetPath in glob.glob(assetsSearchablePath, recursive=True):
    # storing the image name as encoded so that we save some time later during string search in file
    encodedImageName = str.encode(Path(imagesetPath).stem)
    # initializing occurrence count as 0
    imagesNameCountDict[encodedImageName] = 0

print("Names of all assets obtained")

# search images in swift files
# obtain paths for all swift files

# For objective-c project, change '/**/*.swift' to '/**/*.m'
swiftFilesSearchablePath = projectFolderPath + '/**/*.swift' #alternate way to append: fr"{projectFolderPath}/**/*.swift"
print(f"swiftFilesSearchablePath: {swiftFilesSearchablePath}")

for swiftFilePath in glob.glob(swiftFilesSearchablePath, recursive=True):
    with open(swiftFilePath, 'rb', 0) as file, \
        mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s:
        # search all the assests within the swift file
        for encodedImageName in imagesNameCountDict:
            # file search
            if s.find(encodedImageName) != -1:
                # updating occurrence count, if found
                imagesNameCountDict[encodedImageName] += 1

print("Images searched in all swift files!")

# search images in storyboards
# obtain path for all storyboards

storyboardsSearchablePath = projectFolderPath + '/**/*.storyboard' #alternate way to append: fr"{projectFolderPath}/**/*.storyboard"
print(f"storyboardsSearchablePath: {storyboardsSearchablePath}")
for storyboardPath in glob.glob(storyboardsSearchablePath, recursive=True):
    with open(storyboardPath, 'rb', 0) as file, \
        mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s:
        # search all the assests within the storyboard file
        for encodedImageName in imagesNameCountDict:
            # file search
            if s.find(encodedImageName) != -1:
                # updating occurrence count, if found
                imagesNameCountDict[encodedImageName] += 1

print("Images searched in all storyboard files!")
print("Here is the list of unused assets:")

# printing all image names, for which occurrence count is 0
print('\n'.join({encodedImageName.decode("utf-8", "strict") for encodedImageName, occurrenceCount in imagesNameCountDict.items() if occurrenceCount == 0}))

print(f"Done in {time.time() - start} seconds!")

redpajama_set_name: RedPajamaStackExchange


text:
Q: Access top panel sub indicutors sub-menu items without mouse I am using Ubuntu 12.04,
Is there any way to access network manager menu at top panel(indicators area) without mouse ? may be like we access menu of application by Alt - it will be very convenient.
Is there any way access other indicator's functions (sub-menu items of notification,volume,...) in top menu without mouse?

A: alt+F10
Give you access to the first panel menu then you can use your left and right keys arrow keys to get to others menus. To navigate menu items you use down and up. To select you hit enter.


text:
STEMAP Training
Become a STEM Ambassador
Host a STEMAP Training
Host a STEM Ambassador
Site Leader Portal
University of Utah Resources
The STEM Ambassador Program began in 2016 as a training program for a small cohort of University of Utah scientists. Since then, we have grown to work with over 50 faculty, graduate students, and post-docs. Scroll down to learn about the scientists who have participated. Contact us if you would like to reach out to a STEM Ambassador.
Note that many Ambassador bios were uploaded when the Ambassador joined the program and may not be current.
Daniel Mendoza
Daniel Mendoza's research interests include quantifying and characterizing urban greenhouse gas and criteria pollutant emissions for use in human exposure estimation and metropolitan planning. He also examines the health effects associated with acute and chronic pollutant exposure, particularly in vulnerable populations. He recently joined the Dark Skies team and will focus on the association between dark skies and urban light pollution with air quality and health outcomes.
He was previously a professional cyclist in Europe, and currently enjoys Utah's outdoors by competing in duathlons and snowshoe races.
© 2021 STEMAP.


7553 Rochester Adult ADULT – Protime Sports Inc.
Combined with the Salem Jacket, the Rochester Warm-Up Pant keeps you covered for training or travel. The Rochester Pant features an updated cut to the classic soccer pant. Stay current with the latest in training.


text:
/*
 *  TCPServerSocketAgent.cpp
 *
 *  Created by Ian Taylor on 01/03/2007.
 *
 */

#include "TCPServerSocketAgent.h"

static class TCPServerSocketAgentClass : public TclClass {
public:
	TCPServerSocketAgentClass() : TclClass("Agent/TCP/ServerSocketAgent") {}
	TclObject* create(int argc, const char*const *argv) {
		PLOG(PL_DEBUG, "Creating TCPSocketAgent %i arguments\n", argc);
		if (argc == 6) { // with protocol included
			return (new TCPServerSocketAgent(argv[4], atoi(argv[5])));
		} else if (argc == 4) {
			TCPServerSocketAgent *tcpsock = new TCPServerSocketAgent();
			return (tcpsock);
		} else
			return NULL;
	}
} class_tcp_server_socket_agent;

void TCPServerSocketAgent::recv(Packet *pkt, Handler *handler) {
		int tiflags = hdr_tcp::access(pkt)->flags() ; 		 // tcp flags from packet
		hdr_ip *iph = hdr_ip::access(pkt);

		if (state_==SOCKCLOSED) return;

	PLOG(PL_DEBUG, "TCPServerSocketAgent::recv, node %u recv Called, flags = %u \n", addr(), tiflags);

	// Possible options:
	// #define TH_FIN  0x01        /* FIN: closing a connection */
	// #define TH_SYN  0x02        /* SYN: starting a connection */
	// #define TH_PUSH 0x08        /* PUSH: used here to "deliver" data */
	// #define TH_ACK  0x10        /* ACK: ack number is valid */
	// #define TH_ECE  0x40        /* ECE: CE echo flag */
	// #define TH_CWR  0x80        /* CWR: congestion window reduced */

		if (tiflags & TH_FIN) { // Closing connection
	 		PLOG(PL_DEBUG, "TCPServerSocketAgent received a FIN - Close connection request from %i, port %i\n", iph->saddr(), iph->sport());
			SocketListItem *sitem = (SocketListItem *)mySocketList->findProxyByPortAndAddress(iph->saddr(), iph->sport());
			TCPSocketAgent* socket = sitem->getSocketAgent();
			socket->getTCPAgent()->recv(pkt,handler); // sent packet to agent for processing
			state_=SOCKCLOSED; // so no more processing ...
			// shutdown();
//			mySocketList->remove(sitem); // remove socket in either case i.e. FIN received (5) or final FIN (9) from linked list connections
		} else if (tiflags & TH_SYN) { // connection request
			synPacket_= pkt;
			handler_=handler;
			// set the senders port and address
			dport() = iph->sport();
	 		daddr() = iph->saddr();

	 		PLOG(PL_DEBUG, "TCPServerSocketAgent received a SYN - connection request from %i, port %i\n", iph->saddr(), iph->sport());

			// First check to see if we already have received a connection request by searching the
			// static socket list to see if this client has already made this request.
			SocketListItem *sitem = (SocketListItem *)TCPSocketAgent::getSocketConnections()->findProxyByPortAndAddress(iph->saddr(), iph->sport());

			if (sitem!=NULL) { // then there's been an accept already so ignore duplicate
				PLOG(PL_INFO, "TCPServerSocketAgent: Ingoring SYN request\n");
				PLOG(PL_INFO, "Connection attempt has already been made from %i and port %i\n", iph->saddr(), iph->sport() );
				return;
				}
			if (tcpListener_!=NULL)
				tcpListener_->tcpEventReceived(new TCPEvent(TCPEvent::ACCEPT, this, NULL, NULL));
			else
				accept(); // no listener, so accept by default.
		} else { //

			SocketListItem *sitem = (SocketListItem *)mySocketList->findProxyByPortAndAddress(iph->saddr(), iph->sport());
			TCPSocketAgent* socket=NULL;

			if (sitem!=NULL)
				socket = sitem->getSocketAgent();

			if (socket==NULL) {
				PLOG(PL_ERROR, "TCPServerSocketAgent: No socket found for address %i and port %i !!!", iph->saddr(), iph->sport() );
				PLOG(PL_ERROR, "TCPServerSocketAgent: This should not happen - please report bug \n");
				exit(1);
			}

			bool skip=false;

			PLOG(PL_DETAIL, "Flags are TH_ACK: %u, TH_ECE: %u, TH_CWR: %u\n", (tiflags & TH_ACK), (tiflags & TH_ECE), (tiflags & TH_CWR));
//			if ((tiflags & TH_ECE))
//				skip=true;

			if (!skip) {
				// Demultiplex and find the socket agent to pass the data to
				// its data so pass it to TCP agent

				// If this is the same node, just get the data and bypass TCP

				PLOG(PL_DETAIL, "TCPServerSocketAgent: Pointer to Packet is %u\n",  pkt);

				TcpData *tcpData = (TcpData *)pkt->userdata();

				if ((tcpData!=NULL) && (tcpData->size()!=0)) { // if there is data then pass it on
					PLOG(PL_DEBUG, "TCPServerSocketAgent:: Demultiplexing - passing onto TCP agent to receive data \n");
//					PLOG(PL_DEBUG, "TCPServerSocketAgent: Got Data!!!!: Node Received DATA !!!!!! %s\n", tcpData->getData());
	//				socket->tcpEventReceived(new TCPEvent(TCPEvent::RECEIVE, pkt, tcpData->getData(), tcpData->getDataSize()));
					// delete tcpData;  // no need - the scheduler cleans this up for us...

					// do this in the agent.
				}
			}

//			if (socket->getAddress()==socket->getDestinationAddress())
//				socket->getTCPApp()->recv(-1);
//			else
				socket->getTCPAgent()->recv(pkt,handler);
		} // NOT A SYN OR FIN

		PLOG(PL_DEBUG, "TCPServerSocketAgent:: Packet Handled ok \n");
	}

 /**
  * Returns a new TCPSocketAgent that will deal with the accepted connection
  */
TCPSocketAgent* TCPServerSocketAgent::accept() {
	PLOG(PL_DEBUG, "TCPServerSocketAgent::Accept CALLED - we are on node %i, accepting connection from node %i, port %i\n", addr(), daddr(), dport());

	Tcl& tcl = Tcl::instance();

	tcl.evalf("eval new Agent/TCP/SocketAgent");

	const char *tcpVar = tcl.result();

	if (tcpVar==NULL) return NULL;

	TCPSocketAgent *socket = (TCPSocketAgent *)tcl.lookup(tcpVar);
	socket->setSimulationAgent(initialSimulationAgent);

	socket->setTCPAgentProtocol(theTCPProtocol_); // creates the underlying TCP protocol for the agent

	socket->setDestinationPort(dport());
	socket->setDestinationAddress(daddr());

  	socket->attachTCPAgentToNode(this, -1); // attaches the socket to this node, on a port negative 1 - unlikely to be taken ...

	socket->getTCPInterface()->listenOn(port()); // se we can receive data

	// Add the receiving socket to the static socket list with the sender's port and address as the ID.
	PLOG(PL_DETAIL, "TCPServerSocketAgent: add REMOTE socket to list for client's address %i and port %i\n", socket->getDestinationAddress(), socket->getDestinationPort());
	SocketListItem *snode = new SocketListItem(socket);
	snode->setAddress(socket->getDestinationAddress());
	snode->setPort(socket->getDestinationPort());
	TCPSocketAgent::getSocketConnections()->prepend(snode);

	PLOG(PL_DETAIL, "TCPServerSocketAgent: added REMOTE socket to list for client's address %i and port %i\n", snode->getAddress(), snode->getPort());

	// Adds this socket to the list of sockets that this server socket is managing for demulpiplexing later.
	mySocketList->prepend(snode);

	// THIS IS JUST FOR LOCAL CONNECITONS ...
	TCPSocketAgent *remoteSocket=NULL;
    if (socket->getAddress() == socket->getDestinationAddress()) {
		PLOG(PL_WARN, "TCPServerSocketAgent::LOCAL SOCKET DETECTED - NS-2 cannot run LOCAL sockets \n");
		SocketListItem *sitem = (SocketListItem *)TCPSocketAgent::getSocketConnections()->findProxyByPortAndAddress(socket->getAddress(), socket->getPort());
		remoteSocket = sitem->getSocketAgent();
		TCPSocketAgent::getSocketConnections()->remove(sitem);
		}
	// END LOCAL CONNECITONS ...

	PLOG(PL_INFO, "TCPServerSocketAgent::Forwarding SYN to Agent \n");

    // here only pass it to the TCP agent if we are not on the same node. If we are the TCPAgent breaks
	// so we bypass the protocol.

    if (socket->getAddress() != socket->getDestinationAddress())
		socket->getTCPAgent()->recv(synPacket_, handler_); // send the SYN packet to the TCP protocol so it can respond
														// as if it received it in the first place ....
	else // need to notify connected socket...
		remoteSocket->tcpEventReceived(new TCPEvent(TCPEvent::CONNECTED, NULL, NULL, 0));

	return socket;
	}

bool TCPServerSocketAgent::bind(nsaddr_t thePort) {
	PLOG(PL_DEBUG, "TCPServerSocketAgent: Attempting to Attach on port %i \n", thePort);

	if (initialSimulationAgent!=NULL) {
		attachTCPServerToNode(initialSimulationAgent, thePort);
		PLOG(PL_DEBUG, "TCPServerSocketAgent: Attach Complete, TCP ServerAgent on node %i, port %i \n", addr(), port());
		return TRUE;
		}
	else {
		PLOG(PL_ERROR, "TCPServerSocketAgent: Can't attach server to node: no simulation agent set\n");
		return false;
		}
	}

/**
 * Atatches the TCP agent to the node that the provided agent is attached to. The provide agent must have
 * been attached before this method is called, otherwise we cannot get a reference to the node.
 */
bool TCPServerSocketAgent::attachTCPServerToNode(Agent *myAgent, nsaddr_t thePort) {
	Tcl& tcl = Tcl::instance();

	tcl.evalf("%s set node_", myAgent->name());

	const char* nodeName = tcl.result();

	attachTCPServerToNode(nodeName, thePort);
	return true;
}

/**
 * Overridden to become a dummy TCPSocketAgent that muli-plexes messages to real socket Agents.
 */
bool TCPServerSocketAgent::attachTCPServerToNode(const char *nodeNameInTCL, nsaddr_t thePort) {

	Tcl& tcl = Tcl::instance();
    // find out the name of this node in tcl space

	// tcl.evalf("%s set node_", node->name());
    // const char* nodeName = tcl.result();

	// cout << "Node name for " << name() << " on node: " << nodeNameInTCL_ <<  endl;

	nodeNameInTCL_ = new char[strlen(nodeNameInTCL)];

	strcpy(nodeNameInTCL_,nodeNameInTCL); // sets the name of the node to its TCL parameter for future use

//    if (thePort > 0)
		PLOG(PL_DEBUG, "Running: %s attach %s %hu\n", nodeNameInTCL_, name(), thePort);
        tcl.evalf("%s attach %s %hu", nodeNameInTCL_, name(), thePort);
//    else
  //      tcl.evalf("%s attach %s", nodeNameInTCL, name());

  	tcpAgentIsAttached=true;

	return true;
	}

/**
 * Must shutdown socket but after current data has been sent, also needs to notfiy all connected
 * sockets that this has closed.
 */
bool TCPServerSocketAgent::shutdown() {
	// Tell every socket to shutdown, which sends off a SYN packet to the other side of the connection.
	SocketListItem* cur = (SocketListItem*)mySocketList->getHead();
	if (cur!=NULL) {
		SocketListItem* next;
		// detach all socket agents added to this node.
		while (cur) {
			next = (SocketListItem*)cur->getNext();
			TCPSocketAgent *attachedSocket = cur->getSocketAgent();
			PLOG(PL_DEBUG, "TCPServerSocketAgent -> shutting down %s\n", attachedSocket->getTCPAgent()->name());
			attachedSocket->shutdown();
			cur = next;
		}
	}
	return true;
	state_=SOCKCLOSED;
}

/**
 * Must close socket but after current data has been sent, also needs to notfiy all connected
 * sockets that this has closed.
 */
bool TCPServerSocketAgent::closeSocket() {
	// Tell every socket to close
	SocketListItem* cur = (SocketListItem*)mySocketList->getHead();
	if (cur!=NULL) {
		SocketListItem* next;
		// detach all socket agents added to this node.
		while (cur) {
			next = (SocketListItem*)cur->getNext();
			TCPSocketAgent *attachedSocket = cur->getSocketAgent();
			PLOG(PL_DEBUG, "TCPServerSocketAgent -> closing %s\n", attachedSocket->getTCPAgent()->name());
			attachedSocket->close();
			delete cur;
			cur = next;
		}
	}
	PLOG(PL_DEBUG, "TCPServerSocketAgent::all sockets closed - detaching now\n");
	dettachFromNsNode();
	return true;
}

/**
 * Detaches this TCP socket server agent from the node.
 */
bool TCPServerSocketAgent::dettachFromNsNode() {
	PLOG(PL_DEBUG, "TCPServerSocketAgent::dettachFromNsNode called\n");

	if (!tcpAgentIsAttached) return false;
	else {
		PLOG(PL_DEBUG, "TCPServerSocketAgent::Agent Active, Detaching Agent\n");

		Tcl& tcl = Tcl::instance();
        tcl.evalf("Simulator instance");
        char simName[32];
	    strncpy(simName, tcl.result(), 32);

		PLOG(PL_DEBUG, "Detach, Running: %s detach-agent %s %s\n", simName, nodeNameInTCL_, name());

		tcl.evalf("%s detach-agent %s %s", simName, nodeNameInTCL_, name());

    	PLOG(PL_DEBUG, "TCPSocketServerAgent::dettachFromNsNode Finished\n");

		return true;
		}
    }

int TCPServerSocketAgent::command(int argc, const char*const* argv) {
	PLOG(PL_DEBUG, "Node = %s, command = %s\n", name(), argv[1]);

    for (int i =0; i<argc; ++i)
		PLOG(PL_DEBUG," arg[%i] = %s," , i, argv[i]);

	PLOG(PL_DEBUG,"\n");

	if (argc==2) {
		if (strcmp(argv[1], "listen") == 0) {
			//
			return (TCL_OK);
		} else if (strcmp(argv[1], "detach-from-node") == 0) {
			dettachFromNsNode();
			return (TCL_OK);
			}
	} else if (argc==3) {
		if (strcmp(argv[1], "setProtocol") == 0) {
			theTCPProtocol_=TCPSocketAgent::getTCPProtocolFromString(argv[2]);
			return (TCL_OK);
		} else if (strcmp(argv[1], "attach-to-node") == 0) {
			attachTCPServerToNode(argv[2], 0);
			return (TCL_OK);
		}
	}

	return Agent::command(argc, argv);
}

redpajama_set_name: RedPajamaGithub


text:
» USS R-14 underway with improvised sails, Pacific Ocean, May 1921
Caption USS R-14 underway with improvised sails, Pacific Ocean, May 1921 ww2dbase
Source ww2dbaseUnited States Navy Naval History and Heritage Command
Identification Code NH 52858
R-14 Main article Photos
Photos at Same Place Pacific Ocean
Licensing Public Domain. According to the US Navy Naval History and Heritage Command, as of 21 Jul 2010:
Official government photographs and documents are in the public domain and may be scanned and reproduced in print or online. They may be cropped or resized, but their content may not be altered.
Additionally, according to the United States copyright law (United States Code, Title 17, Chapter 1, Section 105), in part, "[c]opyright protection under this title is not available for any work of the United States Government".
Aerial view of USS North Carolina, off the US east coast, 17 Apr 1942, photo 1 of 3
"Since peace is now beyond hope, we can but fight to the end."
Chiang Kaishek, 31 Jul 1937


Given his impoverished and unstable childhood, no one would blame Maurice Robinson if he were angry. Any number of young men with such an upbringing have turned the resulting anger into a self-destructive force.
But not Robinson. He has taken the experiences of his youth to fuel his passion for social justice and activism beginning at the tender age of 19. Now, more than a decade later, he is the Program Manager for Concerned Black Men National, a non-profit organization that provides community programs for youth and their families. There is also a Richmond Chapter of the organization, which conducts separate programming.
On a warm spring Thursday, Robinson, 30, is at Franklin Military Academy gathering his group of youngsters in the cafeteria after school. They sign in before being ushered to a classroom for that afternoon's activity. They are individual balls of energy, talking, moving, laughing, joking, and being typical adolescents. After they settle down to an afternoon snack of juice boxes and Doritos, Robinson asks about the creed they recite each time they meet.
I will focus my abilities to do great.
The strongest force I have to counteract negativity is my mind.
I will use education to prosper.
I'm going to reach, prepare, focus and dream.
And the statistic I will become is one of success.
I see myself in the future.
And the pride of myself, my family and my community.
The creed could easily apply to Robinson, who has used his mind, education and his quest for social justice to become an exceptional man. He has had stints with AmeriCorps, the domestic version of the Peace Corps. He's worked with former Richmond 9th District Councilman Doug Connor on a proposed community center. He's interned with Virginia Delegate Jennifer McClelland at the Virginia General Assembly. All of that is in addition to his activism, speaking at Richmond City Hall regarding matters of police brutality, youth violence and other social justice issues.
But getting from where he started to where he is now was a journey filled with more potholes than a Richmond street after a spring thaw. "Honestly, I was raised in poverty and violence," Robinson recounts. "Growing up as a kid I didn't have a stable home." That instability resulted in him attending 12 different elementary schools as the family moved from one residence to another. "That's why I didn't have a chance to grow any friendships as a child," said Robinson. He was self-described "introvert" whose friends were action figures and comic books.
Another traumatic family experience involved his mother, Rudean Hicks. In 1997, his mother, who'd been a bus driver in Richmond Public Schools for 20 years, was assaulted by a high school student. Robinson said the student had been expelled from George Wythe High School but had gotten on the school bus and began harassing the female students. Robinson's mother intervened and eventually got the student off the bus. However, the young man returned with a gun, placing it to the woman's head and pulling the trigger. The gun jammed. The incident sent Robinson's mother into a downward emotional spiral and lead to a diagnosis of Post-Traumatic Stress Disorder. Sadly, it was one in a series of tragic events that she had suffered over the course of her life. In 1999, when Robinson was 13, his mother's brother, who had a crack cocaine addiction, was murdered. The killing remains unsolved. She also had to endure the untimely death of her father, who was hit by a teenaged driver as he walked across the Mayo Bridge.
All these things, Robinson said, "put an emphasis in me being involved in the community and having an appetite and hunger for doing something for the community of Richmond." At the age of 19, he began satisfying that hunger by becoming an activist, speaking at City Hall and protesting things such as youth violence, social inequality and injustice. He had been able to avoid falling into the trap of gang violence while a student at Huguenot High School.
"As a student at Huguenot I definitely had my situations, fights, getting jumped," he explained. Students were trying to influence him to join a gang. "But I wasn't a follower. That wasn't me and I told them straight up. That's one of the reasons I had to transfer to Henrico High School to finish my education." After graduating, he attended J. Sergeant Reynolds Community College majoring in Social Science before transferring to University of Richmond to earn a degree in Political Science.


Gabri's Restaurant & Lounge fine dining restaurant business plan financial plan. Gabri's Restaurant & Lounge is a fine dining establishment in Long Branch, New Jersey.
$385,000 of funding is needed over the next year for renovations, furniture, kitchen equipment, liquor license, food & restaurant supplies, legal fees, working capital, marketing and personnel.
We assume that there are no unforseen changes in the expectancy in the popularity of our restaurant.
We assume access to investments and financing are sufficient to maintain and fulfill our financial plan as shown in the tables.
For our Break-Even Analysis, we assume running costs include our full payroll, rent, and utilities, and an estimation of other running costs.
The most important assumption in the Projected Profit and Loss statement is the gross margin. Although it doesn't jump drastically in the first year, over time the restaurant will develop it's customer base and reputation and the growth will pick up more rapidly towards the fourth and fifth years of business.
The cash flow depends on assumptions for inventory turnover, payment days, and accounts receivable management. Our projected same-day collection is critical, and is reasonable and customary in the restaurant industry. We do not expect to need significant additional support even when we reach the less profitable months, as they are expected.
No one attempts a business anticipating failure, however sometimes ventures do not fulfill their promise.
We at Gabri's are committed to our concept and its viability. In the event that our venture cannot achieve profitability and retire the encumbrances; we will first attempt to sell the operation and use the proceeds to clear all outstanding balances. If we are unable to sell the operation for sufficient proceeds we will forced to default whereby the SBA loan will be in senior standing. Any further outstanding balances will be borne by the investors on a weighted percentage basis of the total amounts due in bankruptcy proceedings.


text:
Coach gets great opportunity
Joe Williams, Sentinel Staff WriterORLANDO SENTINEL
Brady Bogart knows the baseball players he is coaching at The Villages Charter School have dreams of playing in the major leagues one day. It's a dream that he is seeing every day this summer.
It still lives in the eyes of the players he is helping coach for the Amarillo (Texas) Dillas in the independent United League.
There is a 31-year-old pitcher on the team, who a couple of years ago, was as close to the majors as making the Tampa Bay Devil Rays' 40-man roster. And, there is a 20-year-old shortstop from Puerto Rico playing organized baseball for the first time on the Dillas' roster.
Both are hoping for one shot at making the majors.
"I see the dream in all the players I work with every day," said Bogart, who is spending the summer working as the Dillas' pitching coach and working with Dillas Manager Buddy Biancalana, the former Kansas City Royals shortstop.
"The high-school kids have those same dreams. Hopefully, the high-school kids will be able to learn from what I have seen here. I want the high-school kids to know that there are still guys on this level who are still working on their changeups, just like they are."
Bogart, who coaches at The Villages but teaches health at Inverness Citrus High School, was a former pitcher who spent three years playing in independent leagues -- first for the Sioux Falls (S.D.) Canaries in the American Association of Independent Baseball in 1993 and then in Mobile, Ala., and in Abilene, Texas, as part of teams in the Texas-Louisiana League in 1994 and '95.
The Texas-Louisiana League is now the United League.
After ending his playing career, Bogart worked as the pitching coach at Saint Leo College from 1993-97 and returned for the 2004 season, but when the opening came at The Villages for the 2005 season, he jumped at the opportunity to coach closer to home.
Bogart said to take the job with Amarillo, he had to leave his teaching position at Citrus High School early, which he did with the school administration's blessing.
"It's great. It's a step I had to take. An opportunity I had to take," said Bogart, who plans to return to coach the Buffaloes at The Villages in 2007, but also would like to coach on the college level again. "Getting to this level is a great experience.
"We have players straight out of college, and we have players who have had Double-A and Triple-A experience."
While teaching baseball, Bogart said he also is being taught.
He said he constantly is learning from Biancalana, who played on the Royals' 1985 World Series championship team. Then there are the conversations he has with Doc Edwards, a former major-league catcher and the Cleveland Indians' manager from 1987-89. Edwards manages the San Angelo Colts in the United League.
"You sit down and talk to Doc for 10 or 15 minutes, and you can learn so much from him," Bogart said. "The same thing with Buddy. Guys love playing for him and I love working with him because he has been there."
Bogart said though the players may be more experienced than those he coaches at The Villages, he said pitchers still face the same kind of problems -- throwing strikes and working ahead in the count.
"Edinburg is 28-9 and in first-place because of their pitching staff," Bogart said. "Their pitchers are getting ahead in the count. That's something we are not doing, and the other teams in the league haven't been doing. Edinburg is the only team in the league with an ERA below 5.50."
Amarillo is in fourth place in the league with a 16-21 record as of Tuesday night's game at San Angelo.
Bogart said he and Biancalana almost feel like kids every day they get to the ballpark.
"Buddy loves it," Bogart said. "We often will ride to the ballpark together. The great thing is going to the ballpark every day at about 3 p.m. and coming home around 11 p.m. Me and Buddy, every day, we say, 'Isn't this great?' "


I'm a senior software engineer at Google in New York City, and I'm happily approaching five years here. For the past nine months, I've worked on ads products creating systems that link publishers with advertisers to create advertising deals. Before this, I was still in ads but working on reporting applications that allow publishers to fully understand the performance of their advertising campaigns: revenue generated, number of clicks and views per ad, and other metrics.
For my 20 percent project (one day a week to work on something not related to my direct team), I specialize in campus outreach and involvement, with a focus on diversity recruitment. For example, I was at UM in fall 2016 hosting a variety of events, including a Tech Talk on compilers and Resume Office Hours, and I was also at the Grace Hopper Celebration and Society of Women Engineers conventions recruiting talented women engineers for successful careers. I continue to attend conferences, so stop by the Google booth and say hi!
Describe one key memory of your time at CoE.
During freshman year, a collegiate board member noticed me in the hallway right before a meeting and essentially forced me to attend. I became interested, motivated, then compelled to become very active. Today, I am a National Society of Black Engineers (NSBE) Lifetime Member to ensure the continuing success of minority engineers.
My mom passed away during my junior year right before Thanksgiving. This was clearly a difficult time for me, with multiple trips back to New York as her condition was drastically changing week to week. Word of her death and my struggles spread to Dr. Tien (CoE dean at the time), and he said to me, "I'm sorry for your loss. Would you like to come to my house and enjoy Thanksgiving with my family?" I'm almost brought to tears every time I think of this memory.
College is a wonderful experience, especially at UM – you meet people from a wide variety of backgrounds, all working toward the common goal of developing their careers. Many of them will become your lifelong friends. Keep them close; respect them with all your heart. You may be affecting their careers (and vice versa) in the future.
This includes the faculty. They work for your success. I was recommended for my first internship by my academic advisor, Mrs. Ann Helmers (I didn't even want the internship. I wanted to just do nothing all summer). As your ally, they have the foresight to steer your career in the right direction.
(Lastly, and this is most important) I only found out years after college that once you graduate or switch jobs, you can ask to push back your start date 1+ months for international travel. The world is massive – you won't regret this.
CoE taught me that engineering is wonderful. Let me remind you that I'm not one of those people that wrote code in high school; I was introduced to it during my freshman year of college. You must constantly learn about the engineering experience and how that relates to your career goals. If you are ever confused, question everything. I continue to give back to the University because I believe CoE is invested in your happiness. The job opportunities are endless; the money is waiting. As a software engineer, I am paid to continue my hobby. Are you ready for success?