text:
Essays - Spring 2014
The Making of PoBiz Farm
After it became our permanent home, we overfilled it with overloved horses and dogs
By Maxine Kumin | March 11, 2014
Maxine Kumin and her three-month-old filly Boomer, in the fall of 1976 (Photo by Georgia Litwack)
Through our first-ever covered bridge, up a steeply curving dirt road, we suburbanites came with three children to an abandoned farm. Here, where I grew as a poet, we became true New Englanders, with a vegetable garden, a pond, a barn full of horses, and a succession of shelter dogs.
How much my life had changed since that fateful drive in 1961. Now, having won a Pulitzer Prize for poetry in 1973, I metamorphosed into a recognizable name. Invitations came my way to give readings, teach a class, be poet-in-residence for a week, a month, a semester. I could pick and choose. Travel expenses were reimbursed and honoraria paid; suddenly I was in business, the poetry business.
That same year my husband, Victor, found a contractor willing to undertake the dicey job of shoring up the barn foundation so that we could use the whole space. Before then, we had room only for two mares leased for riding and, over one summer vacation, two of a neighbor's weanling foals unrelated to the mares. The entire underpinning of unwieldy boulders that had shifted and rolled loose was to be replaced with poured concrete.
It was heavy work and slow going. We almost lost the contractor and the barn when one section collapsed while he was on the job. We also had a new well dug to serve the barn and an apartment we planned to build on the top floor. This enabled the contractor to run a water line through the rear wall into the narrow space that would serve as sawdust bin and grain room. (We were to experience a thousand regrets over the ensuing years that we hadn't insulated the line. Every time it froze, one of us would have to squat, sometimes for more than an hour, holding a hair dryer aimed at the faucet.) A year later we had six rustic but serviceable stalls, all built by Victor and a hired hand. Two of them are extra large for foaling, and a narrow stall at the back was designed to hold sawdust to be used as bedding. The arrangement left a 20-foot-wide rectangle allowing the horses free access in and out. A friend named it the motel lobby. Another friend made a sign that still hangs on the lip of the haymow facing the house: pobiz farm. For a couple of amateurs who had so much to learn about breeding and raising our own horses, the farm was a costly indulgence. The poetry business helped to support it.
Victor and I put our suburban Boston house on the market and early in 1976 became permanent New Hampshire residents. For more than a decade we had camped out with our three children in the farmhouse. Now we left the comforts of central heating for wood stoves, dependable wattage for frequent power outages due to storms, and shades in every window, as well as downstairs curtains, for a wide-open lifestyle. Drafts blew in around the loose windows. There were windy gaps between the baseboards and the floor. We had an RFD address, a mailbox at the foot of the hill, a phone with a party line. At our first primary election in the town hall, we requested Democratic ballots, which had to be hastily hunted up; we survived unscathed in what was then a staunchly Republican district. We now owned two mares and had taken in a homely roan gelding named Jack who had broken out of his lonely nearby quarters several times and gone wandering in search of equine companionship. A careful fellow, Jack always stayed on the edge of the county road, as his footprints attested. Since one of our mares had been bred, we would soon need a second mount for our initiation into the new sport of competitive trail riding. Jack's owner was happy to part with him.
Our local trail riders association sponsored a 25-mile event describing a circle on the other side of town. As in a road rally, there was a window of time within which participants had to finish. Horses were judged on their general fitness at completion. We were hooked. Over the next 11 years, our weekends from May through October were spent on trail rides—one to three days in duration and 25 to 100 miles long—all over New England. Our stalls filled, indeed overfilled. One year Jack lived contentedly in the motel lobby. In the poem "Jack," I described him as
… Wise old campaigner, he dunks his
hay in the water bucket to soften it, then visits the others
who hang their heads over their Dutch doors. Sometimes
he sprawls out flat to nap in his commodious quarters.
What I found rewarding about this sport, as opposed to the show world of dressage and jumping, was how naturally the horses took to it. They were being used in accord with their basic instincts, moving in a group—willing, well-behaved athletes outfitted with lightweight saddles and simple snaffle bits. I attended seminars on horse care, breeding, and foaling and signed up for clinics on the horse-whisperer methodology that is gradually replacing Wild West bronc-busting techniques.
Victor and I went for long rides to keep our horses fit, exploring the Mink Hills on dusty, overgrown trails to a settlement that once warranted a schoolhouse—all long gone. The dogs went everywhere we went. In "Gus Speaks," our second Dalmatian tells his own long-lived story.
I was the last of my line,
farm-raised, chesty, and bold.
Not one of your flawless show-world
forty-five-pound Dalmatians.
I ran with the horses, my darlings.
I loped at their heels, mile
for mile, swam rivers they forded
wet to the belly. I guarded
them grazing, haloed in flies.
Their smell became my smell.
Now I lie under the grasses
they crop, my own swift horses
who start up and spook in the rain
without me, the warm summer rain.
We bought a used horse trailer and spent weeks teaching our horses how to go calmly in and out. We bought a truck outfitted to pull a trailer. We spruced up the springhouse to serve as living space for a summer horse girl and were deluged with aspirants. Our first horse girl had just graduated from Dartmouth, where she had been captain of the equestrian team. She brought her own horse with her and left us a year later to get married. The horse girl position eventually morphed into farm caretaker. Our present caretaker Susannah (Suzy) Colt had been our horse girl in 1983; she left us to go to law school, spent several productive years representing women in domestic abuse cases, and came back to look after the farm and its aging inhabitants.
Our first foal was born in 1976 to a mare who had been used in a cocaine drug scam, confined for six months in a trailer. We bought her from the slaughterer for 30 cents a pound and bred her to an undersized Arabian stallion with a clubfoot. The stud fee was $50. That foal, Boomer, lived to the august age of 35. She had a successful career as Victor's 100-mile horse before we retired her to use as a broodmare. The first foal, named Praise Be, led to this poem of the same name:
Eleven months, two weeks in the womb
and this one sticks a foreleg out
frail as a dowel quivering
in the unfamiliar air and then
the other leg, cocked at the knee
at first, then straightening
and here's the head, a big blind fish
thrashing inside its see-through sack
and for a moment the panting mare
desists, lies still as death.
I tear the caul, look into eyes
as innocent, as skittery
as minnows. Three heaves, the shoulders pass.
The hips emerge. Fluid as snakes
the hind legs trail out glistering.
The whole astonished filly, still
attached, draws breath and whinnies
a treble tremolo that leaps
in her mother who nickers a low-key response.
Let them prosper, the dams and their sucklings.
Let nothing inhibit their heedless growing.
Let them raise up on sturdy pasterns
and trot out in light summer rain
onto the long lazy unfenced fields
of heaven.
Having a foal in the oven shortens the winter better than anything else. Nothing takes the bite out of a New England February like the daydream of a new youngster on spindly legs racing across the pasture in midsummer. We prepared well in advance, filling the narrow stall at the back of the barn to the brim with green pine sawdust. The reason for my vigilance was a stillbirth with no one in attendance many years ago. Afterward I realized that from our bedroom I had heard a kick in the barn but didn't rouse myself to investigate. Presumably the caul over the foal's nose never ruptured, and the bewildered first-time mother didn't intervene. Some things we can never forgive ourselves for.
Traditionally, a week before due date I moved down, spreading my sleeping bag on top of the sawdust pile and hanging a trouble light from a hook over my head so that I could read between dozing and waiting for the first restless sounds made by a mare going into labor in the adjoining stall. Victor had rigged an intercom so that I could call him; he could pull on sweatpants and boots and get down to the barn in 90 seconds. He was calm and sensible. I was invariably in a state of exalted terror, focused on all the things I learned at clinics that can go wrong. Our vet was almost an hour away. Even though I'd never had to open them, I had a package of sterile, elbow-length plastic gloves ready. A squirt bottle of iodine was at hand to sterilize the umbilicus. The mare was wearing an old leather halter we kept for this occasion. (Unbreakable nylon halters are accidents waiting to happen.)
I had learned to doze through snuffling and snorting sounds, arisings and lyings-down, and how to come abruptly awake at the final unmistakable sounds of beginning labor. But there's more to it than that, aspects I have tried to describe in this excerpt from "Sleeping with Animals":
Nightly I choose to keep this covenant
with a wheezing broodmare …
who grunts in her sleep in the vocables
of the vastly pregnant ….
I in my mummy bag just outside her stall
observe … gradations of
the ancient noneditorial dark ….
What we say to each other in the cold black
of April, conveyed in a wordless yet perfect
language of touch and tremor, connects
us most surely to the wet cave we all
once burst from gasping, naked or furred
into our separate species.
Most mares foaled at night; probably in their undomesticated state they took advantage of the cover of darkness. But one of our mares delivered her foal in midmorning out in our farthest field, surrounded by the rest of the herd. By the time we found her, she was back on her feet, it was raining, and Jack was trying to lick the foal dry. We had to make several trips to remove the terribly curious nonparents from the vicinity. Then we led the gentle quarter horse mare across five acres of pasture and down a craggy hillside to the barn. The hours-old baby bopped along merrily, unfazed.
In the winter of 1979, I rescued another horse. Medas Genesis—I called her Gennie—was a Standardbred who had failed at the track. She had been confined in a space just wide enough to turn around in, and when she came to us, she had barely enough muscle left to walk into the trailer. A month later I took her with me to New Jersey, where I was teaching a poetry workshop at Princeton for a semester. I boarded her at a 600-acre estate half an hour from the university where she shared an enormous pasture with a dozen Welsh ponies. Every morning I taught my seminar and every afternoon I drove out to ride Gennie.
This experiment was so successful that in 1981, when I was appointed U.S. poet laureate, I took five-year-old Boomer with me to Washington. At six every morning I drove against the flow of traffic to Potomac, Maryland, where Boomer was the queen of three adoring hunt club geldings. (No live foxes were involved; the club dragged an artificial scent.) I fed the foursome, mucked out, rode my mare, and made it back to the Library of Congress by 11.
Finding a temporary home for Boomer in the D.C. area was serendipitous; the preceding August at the Bread Loaf Writers' Conference in Middlebury, Vermont, I had met a psychiatrist poet-wannabe from Potomac. He and his wife had an empty box stall and an eight-acre field just 30 minutes from Capitol Hill, and he offered it in exchange for my help with his manuscript.
It had taken me years to screw up the courage to accept a position on the Bread Loaf faculty. I was simply too intimidated by the big names. It was my good fortune that the director, John Ciardi, persevered with his invitations. I became a staff member in 1969, returning half a dozen times to spend two weeks in mid-August meeting and making some lifelong friends. Well before my time, Robert Frost himself was a frequent visitor at the staff house. His presence there was mythic and inspired this imaginary encounter in "The Final Poem":
… don't sit
there mumbling in the shadows, call
yourselves poets? All
but a handful scattered. Fate
rearranged us happy few at his feet.
He rocked us until midnight.
Reaching for the knob of his cane
he rose and flung this exit line:
Make every poem your final poem.
The mountainous woods around Bread Loaf were superb for foraging for wild mushrooms. I had already earned a reputation as a mycophagist when assistant director Sandy Martin and I were observed raising a ladder on campus to bring down a good array of oyster mushrooms growing on a tree. On rainy days Ciardi would tap his glass at lunch and announce, "The Witch of Fungi will lead a mushroom walk at three p.m." In Treman House, the staff retreat where faculty convened for preprandial drinks, we sautéed our chanterelles and oyster mushrooms to accompany our martinis. A goodly amount of drinking went on later in the lubricious evenings as well. Bread Loaf was known in some circles as Bed Loaf.
Foraging for mushrooms had attracted me years before we first glimpsed our farm. What fascinated me was nature's bounty, the chance to reap where you did not sow. I took a course offered by the Boston Mycological Society, found mushroom books in the local library, and eventually collected a dozen handbooks to contrast and compare pictures. I knew enough to obey two cardinal rules: never mingle species and never pick any mushroom with white gills—the underpart of the cap—for fear of unknowingly gathering the destroying angel, deadliest of the Amanita.
The first mushroom we actually ate was the shaggy mane Coprinus, sometimes called the lawyer's wig, with delicate gray gills that turn black and melt—deliquesce—as the fungus ages. It was plentiful and proved serviceable, if not outstanding, for soup. Guests from the city were wary; would they or wouldn't they? Eating wild mushrooms was exotic and dangerous. We persevered. By midsummer clusters of yellow flutelike chanterelles appeared along the woods roads and were even more visible from horseback. We treasured them simply sautéed or in omelets.
By September mushrooms were everywhere in the forest. Oyster mushrooms growing on dead or dying trees became our favorites. One afternoon, while I was riding with a friend, a rich clump growing well above our heads came into view. I dismounted and held both horses' bridles while my companion stood up on her saddle like a circus acrobat to pluck the tree clean. We picked and enjoyed the distinctive yellow-orange sulfur polypore known as chicken-of-the-woods, as well as half a dozen other mushrooms. In "The Dreamer, the Dream" I described Armillaria mellea, where the dreamer comes
upon great clusters of honey mushrooms
breaking the heart of old oak
a hundred caps grotesquely piggyback
on one another, a caramel mountain
all powdered with their white spores
printing themselves in no notebook
and all this they do in secret …
lumbering from their dark fissure
going up like a dream going on.
Since species tend to regrow in the same locales year by year, we triumphantly reaped annual crops where we had not planted, tended, or tilled. Alas, the prized morel has turned up only once despite our ardent searches.
Another crop we hadn't tended grew in heavy clumps around the back of Henry Manley's house. (Henry, an elderly former sawmill worker, lived half a mile away.) I described it in "Extrapolations from Henry Manley's Pie Plant": "[t]he stalks as thick as cudgels, red / as valentines, a quarter-acre bed."
He told us to help ourselves. When I took him a juicy rhubarb crisp, he allowed as how it wasn't half-bad. But just as heavy frosts overtook the mushroom season, Henry Manley, too, succumbed. First he moved in with neighbors who looked after him in exchange for his Social Security check. Then, as he grew frailer, a place was found for him in a nursing home, where he died after three months. His untended house had filled with porcupines and dry rot and had to be razed. The new property owners, Bonnie and Gary, first constructed a big two-story barn; the box stalls suggested that they intended to have horses. While they built a modest new house on the exact footprint of the old, they were living in a trailer with two young daughters, a dog, two cats, and a parakeet. Their vet asked them to take a four-month old mutt he had been ordered to put down; its owners had confined the puppy to a second-story porch all day and complained that when they came home from work, he was too hyper to deal with. Bonnie and Gary took him in but the trailer felt very crowded. Would we?
He was part spitz, part a jumble of other breeds, his name was Joshua. Amiable Gus, our resident dog, folded the puppy in like a playtoy, even tolerating having him hang onto his jowls as they ran downhill behind us when we set out on horseback. Every day Joshua revisited his prior digs, trotting back home with a talisman from Bonnie and Gary's barn: a child's rubber boot, a currycomb, a mangled halter (by then the family had acquired a Shetland pony), once, to my initial horror until I could see it wasn't human, a big baby doll. His finest hour came when he trudged uphill with a pair of ice skates tied together. Lugging them by the laces, he progressed 20 feet, then set his burden down to catch his breath, then proceeded doggedly. After that, a door was installed at the top of the steps leading to the barn storage area.
Gus and his littermate Claude had come to us two years after we made the final move to PoBiz Farm, and they ran together like a pack. The only way to keep them on the premises was to chain one of them at a time, and this made us all unhappy. We gave Claude to a poet and his wife, who subsequently gave him away; I never heard what Claude's ultimate fate was. That guilt haunts me as does Jack's, from the poem that bears his name.
That spring, in the bustle of grooming
and riding and shoeing, I remember I let him go
to a neighbor I thought was a friend, and the following
fall she sold him down the river. I meant to
but never did go looking for him, to buy him back
and now my old guilt is flooding this twilit table …
Although Gus had thrived as an only dog, he tended to hang out with the horses. He and Joshua got on well together, but they never showed any impulse to bond as a pair and wander off without us. We were startled and then alarmed 12 years later when Gus disappeared. We put ads in the local lost-and-found columns, hung posters downtown, alerted everyone we knew that he was missing. I had a nagging worry I kept to myself: that winter a trapper had requested permission to set traps on our land. I had refused but perhaps none too politely. Two weeks later I spotted, floating on the far side of the pond, what I at first mistook for a white birch log with black markings. It was Gus's body. I pulled off my shoes, waded in the chilly April water fully clothed, then swam to his drowned form and tugged him back to the dam. His body was perfectly preserved. There were no marks of a trap, no visibly broken bones. He might have been frogging and had a heart attack, the kindest death I could imagine for him. Victor was in Texas that week. Bonnie and Gary came up the hill and helped me dig a grave on the berm of the pond where Gus had been the "Custodian." It was a sweet memory, but I wept over every shovelful.
Enter our spotted dog.
Every summer, tense with the scent of them
… he stalks his frogs … an old pensioner
happy in his work.
Once every ten or so pounces
he succeeds, carries his captive north
in his soft mouth, uncorks him on the grass,
and then sits, head cocked, watching the slightly
dazed amphibian hop back to sanctuary.
Over the years the pond's inhabitants
seem to have grown accustomed
to this ritual of capture and release.
They ride untroubled in the wet pocket
of the dog's mouth, disembark in the meadow
like hitchhikers, and strike out again for home …
A few weeks later I went to New York to attend the annual banquet of the Academy of American Poets, where I was getting an award. Each table had eight place settings; one stood empty at our table. After the opening remarks and fruit cup, Stanley Moss, the poet and publisher of Sheep Meadow Press, arrived breathless and somewhat disheveled. Driving down the West Side Highway from Riverdale, he had seen a
collarless dog loose in traffic and watched it narrowly avoid being struck several times. He pulled over, leapt from his car, yanking his belt loose as he pursued the dog. The captive was in his car, parked just down the street.
Between the main course and dessert, my editor at Norton and I trooped out with Stanley to see what he had rescued: a big, skinny dog, part German shepherd, possibly part collie, was contentedly curled up on the back seat. He had to be neutered, wormed, given rabies and distemper shots, and treated for severe dehydration. Stanley and his wife Jane paid all the vet bills but found they could not make peace between their old dog and the newcomer. Would we? Once he was fit to travel, the Mosses drove up to New Hampshire with him. It was my turn to do the naming; years ago Victor had named the two barn cats Abra and Cadabra when I had lobbied for the Dickinson sisters Emily and Lavinia. I chose to name our new dog Rilke because he had been rescued by the angels that lurked in the poet's poems. Rilke instantly attached himself to Victor, forming a lifetime bond. He was polite and accepting of family members but barked at any vehicle or pedestrian who came up the hill, including meter readers, UPS drivers, and propane gas deliverers. Although he never growled, that black face conveyed a certain menace to strangers.
Our next needy dog came by way of our son's childhood friend. On a driving vacation with his wife in Xochiapulco, Mexico, they had taken in a small bedraggled terrier type, smuggled him back into the States, hid him in their no-pets-allowed apartment while they were house-hunting, only to be betrayed by a neighbor. Another late-night phone call: Would we?
Xochi proved admirable and easygoing. Both he and Rilke learned after one expensive encounter with a porcupine to keep their distance from all quilly pigs. Some dogs, our vet explained, go back immediately to do battle and can never be cured of the desire for revenge. We had to return a miniature dachshund to our equine vet after one hefty bill for quill removal; she found this little bundle of ferocity a new home with a fenced back yard.
We were used to 60-pound dogs who thumped their way into or out of a room; Xochi padded about as noiselessly as a cat. He moved from rug to chair to sofa to bed. Down! We drew the line at beds. But the life of "this part rat terrier, part / the kind of dog who lives in a lady's lap" came to a very sad end after only six years with us. He was attacked by a visiting dog, and although the three bites looked minor, by evening Xochi seemed troublingly lethargic. Medical crises, whether human or animal, invariably occur after office hours. We drove to the nearest emergency vet clinic 20 miles away and paid $100 up front before any evaluation took place. After a physical exam followed by x-rays determined this was indeed a minor incident, we paid another $200 and drove home. The vet said she had given Xochi a light tranquilizer so that he could have a good sleep. I sat with him on the couch as his breathing slowed. He died an hour later in my arms. The attending vet insisted he must have had a preexisting condition and offered to perform an autopsy. We declined. The bitter taste this incident left in my mouth remains to this day.
We didn't know there were to be two more canine rescues heading our way. A hound dog was next. Virgil had had a hard history. His first owners had taken him in from Death Row, a kill shelter in Pennsylvania. The second adoption went sour for reasons unknown and he was turned over to a different shelter. This time he had pulled the dog walker down the front steps of a Brooklyn brownstone and broken her jaw. The midnight phone call asked, Would we? We didn't especially want another dog so soon after losing the little guy who says, in the last lines of his sonnet "Xochi's Tale," "I dwell in heaven but without the wings," but how could I resist one bearing a poet's name? A city apartment was no place for a young hound dog; he needed space to run. The first time we opened the farmhouse door and invited him out he looked back at us in disbelief. Then he took off, nose down, across the pastures. After letting him out early every morning, we could hear him baying in the distance, making ever-wider circles around the farm, using his own built-in GPS. Virgil had his own sonnet, which ends,
He longs for love with all his poet's soul.
His eyebrows make him look intelligent.
We save our choicest food scraps for his bowl.
What I said about no dogs on beds was not quite true. After a nearly fatal carriage-driving accident in 1998, I could no longer navigate the steep, uneven staircase to the second floor. Victor hired an architect to design an addition to the back of the house for me, a modern bathroom with stall shower and a combination study and bedroom. Once I moved into my new quarters, Virgil took possession of my twin bed butted up against Victor's.
I don't remember how we learned about the plight of Rosie, a 14-pound bundle of self-sufficiency, who was found with a human corpse and a dozen other dogs in the small town of Decatur, Tennessee. She came north steerage class in a tractor-trailer full of stacks of dogs in crates. We were told she had a slight heart murmur; only weeks after she arrived, she was diagnosed by our own trusted vet as being in congestive heart failure. She was 10 years old and had spent her life either in a crate or on the concrete floor of a kennel, and knowledge of that helped us deal with the harsh reality that she might die at any minute. In actuality, this homely little mutt with bat ears and an anteater nose had three good years to race across the pasture, dabble in the pond, go fearlessly in and out of the horses' stalls while they were eating, tell Virgil where he could sit, and assume command of the household.
I have never been able to keep our animals, their births, eccentricities, and deaths, out of my poems. About a year after her lungs filled with water and Rosie was struggling to breathe, the vet euthanized her in my arms. We brought her home to take her place in the growing graveyard of overloved horses and dogs. My grief for this joyful life cut short surprised me with its intensity. Two years later I was able to assume her voice.
Rosie Speaks
shriven: to have obtained absolution
Now that I'm gone perhaps they'll forgive my sins—
those times I woke in the night and trotted
downstairs to relieve myself—not only of urine—
on the guest room rug; they'll allow me the junco I caught
and swallowed whole except for a last indigest-
ible feather; grant me the chipmunk that followed,
its tail protruding, until with a final gust
I managed to get it down, harshly swallowed.
Aren't these mere peccadilloes compared to my gifts?
When green beans were topped and tailed wasn't
I there to search and destroy the stray bits?
I was the secret snorkeler, the pointy-nosed peasant
who served under the table at meals, who leapt
into laps at leisure, or performed when the cue was given,
rolling over and over, delighting the guests.
Wasn't I ever the darling? Tell me I'm shriven.
Victor and I reached an unspoken agreement that we wouldn't take in any more waifs after Rosie. Just keeping PoBiz Farm up and running—stalls and pastures mucked out, fences in good repair, dead trees chainsawed and stacked, garden composted, planted, and tended daily—required extra help. The poetry business was in full swing, which meant I was spending a lot of time away from the farm. We hired a wonderful quasi-Buddhist caretaker who stayed with us for four years before retiring. His successor was Kevin, a former state policeman who, in addition to his many skills with guns (translation: porcupine eradication), chainsaws, and machinery in general, was a comfortable companion on horseback. By then Boomer had been diagnosed with Cushing's disease, a disorder of the pituitary gland common in older horses, and deemed no longer safe to ride. My good friend, the journalist and author Ann Jones, needed a home for her aging white gelding named Sailor, a bombproof horse who would stand directly under sheets of snow cascading off the barn roof while the others flew out to pasture in terror. We were happy to offer him a home. Kevin would boost me up from the mounting block to Sailor's broad back, he would swing onto Deuter, the horse I loved and who came so close to ending my life in the freak driving accident, and we would go for a decorous half-hour walk-and-trot.
From 1998 on I suffered constant neuropathic pain but learned to live with it; at least I was back in the saddle for a few years. Then Deuter's nosebleeds began. Losing him to cancer of the sinuses was devastating. I had seen this handsome chestnut gelding into the world 26 years ago when "he staggered to his feet / with only a few false lunges in the predawn black and suckled / in small audible gulps from his warm mother." Now "I stood with him feeding / him apple slices slowly slowly making them last … when [the vet] shot the syringe full of pentobarb into his vein … He dropped / with a thud, a slain king … the taste of apple wasting in his mouth."
Only two horses remained. Our needs had changed; we needed someone capable of taking on regular housekeeping chores along with the daily horse care, the garden and seasonal mowing. Kevin was ready to retire. We parted friends, and Suzy, newly retired from lawyering, returned to the farm.
In 1991 I was asked to provide an entry for a Festschrift in celebration of the poet May Sarton's 80th birthday. It seems even more apt today than it did when I composed it in my youthful 65th year.
When I think of growing older—suddenly, one is sixty, then, incredibly, seventy, miraculously, eighty!—I think of a term equestrians use to describe changing from one gait to a higher one. It is called making an upward transition.
Mid-autumn, when the weather turns brisk, our horses can't seem to make an upward transition without inserting a buck or two. We avoid using the word canter that incites, and fall back instead on a code. As a hill approaches, one rider may say to another, "Would you like to watermelon up this?" We hope to depart from the trot in a seemly manner, as bucks are quite contagious, horse to horse.
Certainly our human desire is to make all our upward transitions in a seemly fashion. We need neither code words nor euphemisms. When we hurt, we hurt. When we fall sick, we name the disease. And when we can get from day to day with some relish, we deserve to congratulate ourselves.
It's the upward transition that holds me fast. I make a point of looking across to the pobiz farm sign on the front of the haymow. What do I want for it after we're gone, all but 30 of its 200 acres conserved with the New Hampshire Forest Society? I don't expect it to be handed down in the family; the grown children have other lives, other responsibilities. But my hope is that the farm will again fill with horses. That some unwanted dogs will be welcomed here and know love. That the ghost of Boomer, whose great age let me almost think her immortal, will return where she
… gleams like a waxed
Mercedes. Canters
uphill to pasture,
trots down.
I try to imagine
the sweet tasseled fields
without her,
the blind glass of midnight
without her
peremptory whinnies
to summon the others
when lightning
shatters it,
the little herd will
close around her absence,
the way they'll go
on grazing, mouths slobber-
full of the last clover.
This concludes an autobiographical essay by Maxine Kumin, who died February 6, 2014, at the age of 88. The first part, "Our Farm, My Inspiration," appeared in the Winter 2014 issue of the Scholar. Kumin's most recent essay collection, The Roots of Things, was published in 2010.
Maxine Kumin won the 1972 Pulitzer Prize for Poetry and was the Library of Congress poet laureate in 1981-82. Her 17th collection, Where I Live: New & Selected Poems 1990-2010, won the Los Angeles Times Book Award in 2011. She died in February 2014.


text:
School of Science at Rensselaer
Here in the School of Science, we discover answers to humanity's most compelling questions, define new fields of study, and invent solutions to global challenges. Moving seamlessly across disciplinary boundaries, we bring together the best of all fields in order to advance the cause of science.
You are in control.
Our undergraduate degree programs include many electives so you can tailor a curriculum to meet your interests and talents. This flexibility provides an opportunity to explore dual-major degrees, accelerated programs, or begin your graduate work with a co-terminal degree.
Introducing—The Advising Hub
Information Technology and Web Science
Launch into any profession with a foundation in Information Age technology. The Information Technology and Web Science program combines mastery of data, web, and information technologies with an academic discipline of your choice.
Summer Here. The World Away.
The Arch shuffles the academic calendar to pack more experience into your education. Spend a unique summer semester on campus, then take the fall or spring semester of junior year to pursue professional or personal development opportunities.
Rensselaer has long been noted for its "low walls" - There are no rigid divisions across departments and schools.
Chemistry and Chemical Biology
Physics, Applied Physics, and Astronomy
Academic Opportunities within the School of Science
Accelerated Degree Options
Earn a B.S. in just three years or a B.S. and M.S. in just four years.
Even as an undergraduate you participate in the Institute's vibrant research enterprise.
Interdisciplinary Degree Majors
The lines dividing departments and curricula are blurred and intersecting.
Accelerated Physician-Scientist Program
Earn your B.S. and M.D. in only seven years.
A global perspective is crucial for anyone wanting to understand the world today.
Take part in devising solutions to fundamental scientific questions.
Graduate education is becoming increasingly important for career success and advancement.
Accelerated B.S. + Ph.D Program
Receive your Ph.D. seven years after starting college.
The FlexMed Program
Groundbreaking new program designed for students interested in pursuing a medical degree at the Icahn School of Medicine.
Rensselaer Center for Open Source
Learn about Open Source Software and get hands-on experience developing it.
School of Science Graduation Brunch 2019
On Friday, May 17th, 2019 the School of Science hosted their graduation brunch for the graduating students in the undergraduate and graduate programs in all School of Science departments. The event is to congratulate the graduates and wish them the best of luck in their future endeavors. To view and download photo's from this event click here.
The Passing of Joseph S. Levinger
Joseph S. Levinger, a theoretical nuclear physicist who worked on the Manhattan Project during World War II and spent nearly three decades teaching at Rensselaer Polytechnic Institute, died on October 25. He was 96. Levinger was appointed assistant professor in the Physics Department in 1951. In 1953 he was promoted to associate professor and promoted to professor in 1964.
On Friday, May 18th, 2018 the School of Science hosted a graduation brunch for the graduating students in the undergraduate and graduate programs in all School of Science departments. We would like to congratulate the graduates and wish you the best of luck in your future endeavors. Please, find pictures of the event here.
Symposium on the Cell Biology of the Neuron
Symposium on the Cell Biology of the Neuron: A Symposium in Honor of the Career of Gary Banker, PH.D. Sponsored by the Vollmer Fries Lecture Series, the Frontiers in Biotechnology Lecture Series, the School of Science and the Department of Biological Sciences.Friday, October 6th, 20172:00pm - 5:00pmReception to Follow
School of Science Advising Hub (The Hub) - Now Open!
The new School of Science Advising Hub (The Hub) is a resource for School of Science students during their time at RPI and is a resource for all advising purposes. Staffed by experienced advisors, The Hub assists students in achieving their academic goals.
Materials Science & Engineering Virtual Seminar
Jan 19 at 11:00 am
Materials Science & Engineering Distinguished Seminar
Jonsson-Rowland Science Center
110 Eighth Street, Troy, NY 12180-3590
School of Science Advising Hub

redpajama_set_name: RedPajamaCommonCrawl


text:
New Jersey education trustee to Muslims: 'Stay in your desserts'
Barbara Goldberg,
Apr. 20, 2016, 3:24 PM
Muslim women enjoy ice-creams at an Eid celebration fun fair in Burgess Park on August 8, 2013 in London, England.
Dan Kitwood/Getty Images
A northern New Jersey board of education member accused of Facebook posts urging Muslims to "stay in your desserts" is refusing to step down despite a growing list of educators and lawmakers calling for her resignation.
Gladys Gryskiewicz remained listed as a trustee of the Elmwood Park Board of Education on its website on Wednesday despite an uproar over reports of a series of messages on her personal Facebook account.
Posts earlier this year urged Muslims to "stay in your desserts [sic] and follow your religion in your own countries," as well as "Go back to your own country; America needs to get rid of people like you," according to a statement from the New Jersey chapter of Council on American-Islamic Relations, or CAIR.
Gryskiewicz's lawyer, Evan Goldman, was quoted in The Record of Bergen County newspaper as confirming that his client wrote the online comments but saying she would not resign.
"Obviously she knows she wrote it," Goldman is quoted as telling the Record. "She wishes she could take it back."
School board lawyer Andrew Brown said the board had no authority to remove Gryskiewicz, in part because she was elected. Gryskiewicz, who was essentially unopposed when she ran for the post in November, was sworn into office in January.
Neither Goldman nor Elmwood Park Public Schools Superintendent Anthony Grieco responded immediately to requests for comment.
The Facebook page, which has since been taken down, touched a nerve after a high school student in the district called attention to the posts at a board meeting last month, CAIR said.
Humza Yousuf, 17, a Muslim whose parents are Pakistani immigrants and who is student body president at Elmwood Park Memorial High School, said Gryskiewicz's comments offended him.
Principal David Warner immediately demanded Gryskiewicz's resignation, a call echoed by students, CAIR, several school board members, teachers union officials, state legislators and others.
More: Reuters New Jersey Muslims


Copies of the title will be available at the circulation desk about four weeks before the club meets.
Sept. 12 – Discuss Under The Wide and Starry Sky by Nancy Horan.
Oct. 10 – Discuss A Man Called Ove, by Fredrik Backman.


text:
Ewa Czesława Iżycka-Świeszewska – polska neuropatolog i patomorfolog, profesor dr hab. nauk medycznych, kierownik Zakładu Patologii i Neuropatologii Wydziału Nauk o Zdrowiu z Instytutem Medycyny Morskiej i Tropikalnej Gdańskiego Uniwersytetu Medycznego oraz kierownik Zakładu Patomorfologii Copernicus PL w Gdańsku.

Życiorys
W 1993 ukończyła studia medyczne w Akademii Medycznej w Gdańsku i została zatrudniona w Katedrze i Zakładzie Patomorfologii AMG. 25 czerwca 1998 obroniła pracę doktorską Immunohistochemiczna analiza zrębu naczyniowego w glejaku wielopostaciowym (promotor prof. Jolanta Borowska-Lehman), 31 maja 2012 habilitowała się na podstawie pracy zatytułowanej Rodzina receptorów HER1-4 oraz szlak PI3K/ AKT/ mTOR w guzach z grupy nerwiaka zarodkowego - charakterystyka immunohistochemiczna, analiza molekularna oraz korelacje pato-kliniczne.

Od 2011 r. pracuje na Wydziale Nauk o Zdrowiu z Instytutem Medycyny Morskiej i Tropikalnej Gdańskiego Uniwersytetu Medycznego, 5 lutego 2019 nadano jej tytuł profesora w zakresie nauk medycznych. Jest kierownikiem Zakładu Patologii i Neuropatologii Wydziału Nauk o Zdrowiu Gdańskiego Uniwersytetu Medycznego. Członek Rady Uczelni GUMed. Przewodnicząca Zarządu Stowarzyszenia Neuropatologów Polskich. Członek rad redakcyjnych Folia Neuropathologica, Polish Journal of Pathology, Free Neuropathology. Autorka licznych publikacji z patomorfologii i neuropatologii.

W 2022 została odznaczona Złotym Krzyżem Zasługi.

Przypisy

Polscy neuropatolodzy
Absolwenci Akademii Medycznej w Gdańsku
Wykładowcy Gdańskiego Uniwersytetu Medycznego
Urodzeni w XX wieku
Odznaczeni Złotym Krzyżem Zasługi (III Rzeczpospolita)

redpajama_set_name: RedPajamaWikipedia


text:
3 peaks cyclocross 6 tips from dave haygarth
6 insider tips for the 3 Peaks cyclocross
Planet X Team rider Dave Haygarth has ridden the infamous Three Peaks Cyclocross since 1995 and has picked up a bit of knowledge on the way. His obsessive dedicated 3 Peaks blog (here) documents anything of mild interest from ground-breaking interviews to obsessive minutiae, and is must-read stuff for the connoisseur of 'cross's most addictive and unique race. If you're one of the 650 starters taking to the line in North Yorkshire on the 25th September, you'll be well to keep these gems from our battle-hardened veteran Peaks Professor:
1. Get your tyres sorted:
I never tire of tyre discussions. It goes with the territory for most cyclocross racers, but this race breaks the mould. None of your cotton sidewalls, 21 psi stuff here. The rocks don't allow that and punish the soft-tyred rider harshly with pinch punctures.
Tubeless, Clincher or Tubular, you need a strong sidewalled and heavy cyclocross tyre. If using tubes, that goes for these too. Don't stretch 28-32 tubes - fit 35-43mm tubes. Pressure for almost all riders should be no less than 55psi and for the heavier ape like me, up to 65. I've taken risks many a year just to try and get a grip and be more comfy on descents, and paid with huge time penalties for punctures in bad places. I can never say it enough... pump them up hard and be prepared to be shaken to bits as a result. The alternative is unthinkable.
2. It's a long race... but..
I know it's a long day out and that big positions can be gained by the cooler rider who doses their energy until the end, but year after year of riding this race has shown me that you've got to go to the max on Ingleborough (the first climb) then do what you can (eat and drink properly) to hold your position. The gaps just get too big to start closing later on and with such huge mountains to climb, the morale sinks even if you still have firepower in your legs. Go out hard and cling on.
3. Race all of the race
I was once interviewed on the telly about the race, and although I ended up mumbling my words and being a bit unclear (shy boy...) the one thing that sticks in my head is how I described this as a race. I know it sounds crazy, but the mind can play big tricks - especially on a bad-weather day, and before you know it you're starting to think 'oh, I'll just recover a bit here' or 'I'll save myself for this bit'... Don't. The descents, the 19 miles of road sections, they're all part of this. Get your head down and suffer. It's over with before you know it. You can rest at the Helwith Bridge Inn after the race and have a nice pint. But only then. Get on with it. My only ever top ten(in 2009) came because I pulled three riders back in the last 2 miles. There's always positions to be nicked.
4. Don't panic
Notwithstanding all of the above stuff, things go wrong. Bad things happen. Mechanicals, punctures, offs... they all can and should be minor. If you make bad decisions when they do happen, then things just compound. Last year, for example... I lost a bunch of places with double punctures coming down Whernside and my morale went pop. Whilst the five minutes or so I lost getting to the support crew and spare bike were frustrating, it was the next 20 minutes, when I blew myself to bits that wrecked it more. Adrenaline took over from common sense, It happens. Remember bits go wrong and keep a calm level head. Be pro.
5. Eat, drink and be merry...
If you have a support crew, it helps. If you don't have a support crew, it's not so bad as you'd think, but you have to be organised. But whatever your set-up, make sure you keep the fuel topped up. Again, this is about losing a strategic 30 seconds or a minute eating and drinking (on the road sections only ... it's virtually impossible elsewhere) rather than ten or fifteen minutes later on in the race when you're writhing around in cramp. Salty, proteiny food / drinks are needed as well as carbos through sugars. This race has a special way of awarding random cramp to people... I think it's because of the prolonged periods off the bike, then pedal-free but stressful technical descents, then road stuff. It hammers bits of the legs otherwise unused. Keep the right foods and fluids down you.
6. .. for tomorrow we die
It's a horrible feeling before a big race. A one-off like this that only comes around once a year. But just chill and try to relax the day before. The last thing you want is a horrible nervous sleep. Whatever happens, you've done all the training you can, you've checked over all those bolts on the bike, and the best thing you can do is remember that it'll all be over int he blink of an eye. Revel in the moment. Take 1.5 seconds to look around on each summit, and remember that you're one of the lucky ones whose entry for the toughest cyclocross in the world got accepted. Enjoy.
The 54th annual Three Peaks Cyclocross takes place in Helwith Bridge, North Yorkshire next Sunday - 25th September 2016.


When looking for an apartment, you shouldn't have to sacrifice luxury for location. You want an apartment community that offers a convenient location to work and play while still offering all the luxuries and amenities you'd hope to find in your next home. Look no further than the Arbors at East Village Apartments in Clayton, NC!
Conveniently located just a short commute from Raleigh, the Arbors apartments are perfect for families and individuals looking for a short commute to work and play without the hassle of living inside city limits. Don't feel like driving in to Raleigh? Clayton offers plenty of relaxing and family friendly amenities like shopping, restaurants and museums as well; and the small town atmosphere will make you feel right at home.


Mid November 2012 this little kitten was found in Naxxar.
The people who found him took him home but their other two adult cats didn't accept him and he ended up outside.
On the 11th December 2012 one of our members found him in the middle of the street during the night and she picked him up and took him to her home.
We decided to find a very good and safe indoor-home for him.
We are very happy that a lovely family in Tarxien adopted him!
We were told that his new family named him Mr. Jingles, as he was adopted in December.
The family who adopted him called us that they didn't want him anymore so we went to pick him up.
He looked very stressed but that's no wonder after everything he experienced!
At least he's still very sweet and we'll do everything to find him a FOREVER home!
Django (as we named him now) was examined by the vet and he's completely healthy but has some spores of a fungal infection. He has medicines and we'll keep him isolated for a week as by that time -according to the vet- he won't be contagious anymore.
Django was adopted by the most lovely parents he could ever dream of!
Thank you so much Melanie and John!
Banjo settled in his new home!
We visited Banjo in his new home.
He's living like a little Prince and is só much loved!
Banjo settled and is not that naughty anymore.
Banjo is getting very big and is still very funny and very naughty.
The operation did not calm him down but he is so sweet!


Looking for Yuma Bail Bonds? Most Yuma bail bonds agents can bail you (or another person) out anytime anywhere in Yuma. Bail Bonds Network helps you locate and get in touch with a licensed bail bond company in Yuma, Colorado. At your request, many bail bonds agents will come pick you up discreetly. Payment plans are often available depending on the situation.
Upon arrest anywhere in Yuma county, a person must be processed at the Yuma county jail. In order to be released from jail, a few steps must occur, including being "booked in" and posting bail. When the bail bond amount is decided, a bail bond agent comes to post the bond at the local jail. At this time the jail release process starts and typically takes anywhere from 1-2 hours to be completed. Although cash bonds are acceptable, it is normally not commonly done due to financial limitations.


Original Atlantean Orb Bracelet enhanced with the precious metal Palladium creates a very subtle grayish/blue hue......and the energy which emanates from this combination is subtle but powerful! Soaked in water with the Atlantean Sphere to bring in increased awareness, shifts in consciousness and joy! Very limited.


These 133 x 184 mm envelopes are designed to fit 5 x 7 cards, invitations & inserts and are commonly known as 5 x 7 envelopes. Our range includes a huge array of coloured 5 x 7 envelopes manufactured in the UK and available to buy at wholesale prices. This is a traditional sized envelope used for greetings cards & wedding invitations.


Strategic workforce planning is often seen as HR's opportunity to claim a "seat at the table" with rest of the strategic business functions. But, without the right cross-functional knowledge and partnerships, SWP is an exercise in futility. This Solution Suite is based on a keynote presentation given by Burgette White, a Senior HR Business Partner at Kimberly-Clark Corp., at HCI's 2013 Workforce Planning & Analytics Conference.
Identify and collect essential information from the business and HR to create workforce plans.
Use storytelling to spur action and close tomorrow's talent gaps today.
Enable HR Business Partners to consult and collaborate with business leaders to create strategic workforce plans.
Execute, track and adjust workforce plans as needed to meet the changing talent needs of your business.


text:
namespace rocksdb {

class LogBuffer;
class Compaction;
class Version;

class CompactionPicker {
 public:
  CompactionPicker(const Options* options, const InternalKeyComparator* icmp);
  virtual ~CompactionPicker();

  // Pick level and inputs for a new compaction.
  // Returns nullptr if there is no compaction to be done.
  // Otherwise returns a pointer to a heap-allocated object that
  // describes the compaction.  Caller should delete the result.
  virtual Compaction* PickCompaction(Version* version,
                                     LogBuffer* log_buffer) = 0;

  // Return a compaction object for compacting the range [begin,end] in
  // the specified level.  Returns nullptr if there is nothing in that
  // level that overlaps the specified range.  Caller should delete
  // the result.
  //
  // The returned Compaction might not include the whole requested range.
  // In that case, compaction_end will be set to the next key that needs
  // compacting. In case the compaction will compact the whole range,
  // compaction_end will be set to nullptr.
  // Client is responsible for compaction_end storage -- when called,
  // *compaction_end should point to valid InternalKey!
  virtual Compaction* CompactRange(Version* version, int input_level,
                                   int output_level, uint32_t output_path_id,
                                   const InternalKey* begin,
                                   const InternalKey* end,
                                   InternalKey** compaction_end);

  // Given the current number of levels, returns the lowest allowed level
  // for compaction input.
  virtual int MaxInputLevel(int current_num_levels) const = 0;

  // Free up the files that participated in a compaction
  void ReleaseCompactionFiles(Compaction* c, Status status);

  // Return the total amount of data that is undergoing
  // compactions per level
  void SizeBeingCompacted(std::vector<uint64_t>& sizes);

  // Returns maximum total overlap bytes with grandparent
  // level (i.e., level+2) before we stop building a single
  // file in level->level+1 compaction.
  uint64_t MaxGrandParentOverlapBytes(int level);

  // Returns maximum total bytes of data on a given level.
  double MaxBytesForLevel(int level);

  // Get the max file size in a given level.
  uint64_t MaxFileSizeForLevel(int level) const;

 protected:
  int NumberLevels() const { return num_levels_; }

  // Stores the minimal range that covers all entries in inputs in
  // *smallest, *largest.
  // REQUIRES: inputs is not empty
  void GetRange(const std::vector<FileMetaData*>& inputs, InternalKey* smallest,
                InternalKey* largest);

  // Stores the minimal range that covers all entries in inputs1 and inputs2
  // in *smallest, *largest.
  // REQUIRES: inputs is not empty
  void GetRange(const std::vector<FileMetaData*>& inputs1,
                const std::vector<FileMetaData*>& inputs2,
                InternalKey* smallest, InternalKey* largest);

  // Add more files to the inputs on "level" to make sure that
  // no newer version of a key is compacted to "level+1" while leaving an older
  // version in a "level". Otherwise, any Get() will search "level" first,
  // and will likely return an old/stale value for the key, since it always
  // searches in increasing order of level to find the value. This could
  // also scramble the order of merge operands. This function should be
  // called any time a new Compaction is created, and its inputs_[0] are
  // populated.
  //
  // Will return false if it is impossible to apply this compaction.
  bool ExpandWhileOverlapping(Compaction* c);

  uint64_t ExpandedCompactionByteSizeLimit(int level);

  // Returns true if any one of the specified files are being compacted
  bool FilesInCompaction(std::vector<FileMetaData*>& files);

  // Returns true if any one of the parent files are being compacted
  bool ParentRangeInCompaction(Version* version, const InternalKey* smallest,
                               const InternalKey* largest, int level,
                               int* index);

  void SetupOtherInputs(Compaction* c);

  // record all the ongoing compactions for all levels
  std::vector<std::set<Compaction*>> compactions_in_progress_;

  // Per-level target file size.
  std::unique_ptr<uint64_t[]> max_file_size_;

  // Per-level max bytes
  std::unique_ptr<uint64_t[]> level_max_bytes_;

  const Options* const options_;

 private:
  int num_levels_;

  const InternalKeyComparator* const icmp_;
};

class UniversalCompactionPicker : public CompactionPicker {
 public:
  UniversalCompactionPicker(const Options* options,
                            const InternalKeyComparator* icmp)
      : CompactionPicker(options, icmp) {}
  virtual Compaction* PickCompaction(Version* version,
                                     LogBuffer* log_buffer) override;

  // The maxinum allowed input level.  Always return 0.
  virtual int MaxInputLevel(int current_num_levels) const override {
    return 0;
  }

 private:
  // Pick Universal compaction to limit read amplification
  Compaction* PickCompactionUniversalReadAmp(Version* version, double score,
                                             unsigned int ratio,
                                             unsigned int num_files,
                                             LogBuffer* log_buffer);

  // Pick Universal compaction to limit space amplification.
  Compaction* PickCompactionUniversalSizeAmp(Version* version, double score,
                                             LogBuffer* log_buffer);

  // Pick a path ID to place a newly generated file, with its estimated file
  // size.
  static uint32_t GetPathId(const Options& options, uint64_t file_size);
};

class LevelCompactionPicker : public CompactionPicker {
 public:
  LevelCompactionPicker(const Options* options,
                        const InternalKeyComparator* icmp)
      : CompactionPicker(options, icmp) {}
  virtual Compaction* PickCompaction(Version* version,
                                     LogBuffer* log_buffer) override;

  // Returns current_num_levels - 2, meaning the last level cannot be
  // compaction input level.
  virtual int MaxInputLevel(int current_num_levels) const override {
    return current_num_levels - 2;
  }

 private:
  // For the specfied level, pick a compaction.
  // Returns nullptr if there is no compaction to be done.
  // If level is 0 and there is already a compaction on that level, this
  // function will return nullptr.
  Compaction* PickCompactionBySize(Version* version, int level, double score);
};

class FIFOCompactionPicker : public CompactionPicker {
 public:
  FIFOCompactionPicker(const Options* options,
                       const InternalKeyComparator* icmp)
      : CompactionPicker(options, icmp) {}

  virtual Compaction* PickCompaction(Version* version,
                                     LogBuffer* log_buffer) override;

  virtual Compaction* CompactRange(Version* version, int input_level,
                                   int output_level, uint32_t output_path_id,
                                   const InternalKey* begin,
                                   const InternalKey* end,
                                   InternalKey** compaction_end) override;

  // The maxinum allowed input level.  Always return 0.
  virtual int MaxInputLevel(int current_num_levels) const override {
    return 0;
  }
};

// Utility function
extern uint64_t TotalCompensatedFileSize(const std::vector<FileMetaData*>& files);

}  // namespace rocksdb

redpajama_set_name: RedPajamaGithub


On Wed 27th Jan 2016, at Noah's Ark ASCC.
An excellent way to compliment your Jiu-Jitsu by increasing your flexibility, greater range of motion, controlled breathing, lessen anxiety and much more!
Taught by a world class competitor who practices what he preaches.
Cost thereafter will be the standard price - £20 per person.
Strictly no payments accepted on the day.
Maximum attendance - 20 participants - FIRST COME, FIRST SERVED.
* The seminar will take the place of the regular class on that day. Attendance will be restricted to registered participants only.


text:
JaVale McGee Out Indefinitely With Stress Fracture in Leg
Anou Enright November 11, 2013 Rumors No Comments on JaVale McGee Out Indefinitely With Stress Fracture in Leg
There have been some significant injuries to some key players already this season. Not an overwhelming number, but enough to throw a wrinkle in the plans of some teams.
The Denver Nuggets now realize what this means. They will be without the services of JaVale McGee for the forseable future after the big man was diagnosed with a stress fracture in his left leg. No timetime for his return as of yet.
The Nuggets took a big hit at center Sunday with the announcement that starter JaVale McGee will be out indefinitely because of a stress fracture in his left tibia.
McGee played in Denver's first five games. Friday night's game at Phoenix, however, was the tipping point. When Nuggets coach Brian Shaw removed him with 9:34 left in the third quarter, McGee said he was in pain. He didn't return to the game.
McGee's X-ray Sunday revealed the stress fracture.
"I have no idea on a timetable," Shaw said of McGee's return to the lineup. "It's unfortunate, but injuries are part of the game. Hopefully we can hold the fort down until he gets back."
H/T: Denver Post


text:
Christopher Nolan May Have Found The Perfect Follow-Up To Interstellar
By Nick Venable | 5 years ago
Anything Christopher Nolan puts his hands on is going to be regarded with the utmost attention, as his films are the rare breeds that mix imaginative intelligence with big box office grosses. So I'm pleasurably aghast that Warner Bros. has reportedly offered Nolan the chance to follow up the massive space event Interstellar by directing the planned adaptation of Ernest Cline's superb virtual reality thriller-comedy-drama Ready Player One. Christopher Nolan + a flawless video game-inspired story + a budget to bring this crazy ass story to life = OMGOMGOMG.
News of Warner Bros. offer comes from Tracking Board, so we're not quite sure what that means for legitimacy's sake. We only just recently had to deal with reports that Ready Player One is on a massively expensive path, so this kind of amazing news would lead to riotous fury should it prove false.
For those unaware—and you'd be doing yourself a good service by becoming aware—Ready Player One takes place in a not-so-distant future where the world is going to shit as fossil fuels have dried up, a huge chunk of the population is hooked on a virtual world called OASIS, which is pretty much an immersive virtual reality Internet where your avatar experiences many things that are unavailable in real life. The system's now-deceased creator hid a series of objects within the computerized world that could lead to a lifetimes of riches, which guides the main character Wade Watts on a quest to win the game no matter what. And there are a LOT of things standing in his way.
But the first WTF thing happening here is that Christopher Nolan movies, while at times being on-the-nose with themes and exposition, are not very direct with the pop culture of the worlds the characters live in. Ready Player One is about 20% callbacks to video games, movies, TV shows, etc. The second WTF aspect? This movie already has a script from X2 screenwriter Zak Penn (Incident at Loch Ness)), and not his brother Jonathan Nolan or David S. Goyer. Nolan hasn't worked with anyone else's scripts (aside from his own) since 2002's Insomnia.
It was just last week that it was reported Warner Bros. hadn't cleared the rights to all of the games in the screenplay just yet. Penn said that in writing the script, he worked closely with Cline on what he removed and what he kept in, knowing that rights issues would be coming down the line. Had the studio started looking for a lesser-known director at this point, that could have spelled trouble. Instead, they went with the guy whose films have always made back at least twice their budgets in worldwide grosses. If Nolan does sign on, more video games and companies will probably try and get involved.
Failure is impossible with Nolan, so let's hope he doesn't fail to take on this unique and expansive adventure. Seriously, read it if you haven't. And read it again if you have.


text:
Folic acid deficiency declined substantially after introduction of the mandatory fortification programme in Queensland, Australia: A secondary health data analysis
Anna Slagman, Linton Harriss, Sandra Campbell, Reinhold Muller, Robyn McDermott
Objective: To investigate the prevalence of folic acid deficiency in Queensland-wide data of routine laboratory measurements, especially in high-risk sub-populations.
Design: Secondary health data analysis.
Setting: Analysis of routine folic acid tests conducted by Pathology Queensland (AUSLAB).
Participants: Female and male persons aged 0-117 years with routine folic acid testing between 1 January 2004 and 31 December 2015. If repeat tests on the same person were conducted, only the initial test was analysed (n 291 908).
Results: Overall the prevalence of folic acid deficiency declined from 7·5 % before (2004-2008) to 1·1 % after mandatory folic acid fortification (2010-2015; P < 0·001) reflecting a relative reduction of 85 %. Levels of erythrocyte folate increased significantly from a median (interquartile range) of 820 (580-1180) nmol/l in 2008 before fortification to 1020 (780-1350) nmol/l in 2010 (P < 0·001) after fortification. The prevalence of folic acid deficiency in the Indigenous population (14 792 samples) declined by 93 % (17·4 v. 1·3 %; P < 0·001); and by 84 % in non-Indigenous residents (7·0 v. 1·1 %; P < 0·001). In a logistic regression model the observed decrease of folic acid deficiency between 2008 and 2010 was found independent of gender, age and ethnicity (ORcrude = 0·20; 95 % CI 0·18, 0·23; P < 0·001; ORadjusted = 0·21; 95 % CI 0·18, 0·23; P < 0·001).
Conclusions: While voluntary folic acid fortification, introduced in 1995, failed especially in high-risk subgroups, the 2009 mandatory folic acid fortification programme coincided with a substantial decrease of folic acid deficiency in the entire population.
Public Health Nutrition
33247076-oaFinal published version, 471 KB
Dive into the research topics of 'Folic acid deficiency declined substantially after introduction of the mandatory fortification programme in Queensland, Australia: A secondary health data analysis'. Together they form a unique fingerprint.
Mandatory Programs Medicine & Life Sciences 100%
Folic Acid Deficiency Medicine & Life Sciences 90%
Queensland Medicine & Life Sciences 74%
Folic Acid Medicine & Life Sciences 58%
data analysis Social Sciences 44%
Data Analysis Medicine & Life Sciences 44%
Slagman, A., Harriss, L., Campbell, S., Muller, R., & McDermott, R. (2019). Folic acid deficiency declined substantially after introduction of the mandatory fortification programme in Queensland, Australia: A secondary health data analysis. Public Health Nutrition, 22(18), 3426-3434. https://doi.org/10.1017/S1368980019002258
Slagman, Anna ; Harriss, Linton ; Campbell, Sandra et al. / Folic acid deficiency declined substantially after introduction of the mandatory fortification programme in Queensland, Australia : A secondary health data analysis. In: Public Health Nutrition. 2019 ; Vol. 22, No. 18. pp. 3426-3434.
@article{bfc0d377eb9a492dbf7ed1e03e5a7fa6,
title = "Folic acid deficiency declined substantially after introduction of the mandatory fortification programme in Queensland, Australia: A secondary health data analysis",
abstract = "Objective: To investigate the prevalence of folic acid deficiency in Queensland-wide data of routine laboratory measurements, especially in high-risk sub-populations.Design: Secondary health data analysis. Setting: Analysis of routine folic acid tests conducted by Pathology Queensland (AUSLAB).Participants: Female and male persons aged 0-117 years with routine folic acid testing between 1 January 2004 and 31 December 2015. If repeat tests on the same person were conducted, only the initial test was analysed (n 291 908).Results: Overall the prevalence of folic acid deficiency declined from 7·5 % before (2004-2008) to 1·1 % after mandatory folic acid fortification (2010-2015; P < 0·001) reflecting a relative reduction of 85 %. Levels of erythrocyte folate increased significantly from a median (interquartile range) of 820 (580-1180) nmol/l in 2008 before fortification to 1020 (780-1350) nmol/l in 2010 (P < 0·001) after fortification. The prevalence of folic acid deficiency in the Indigenous population (14 792 samples) declined by 93 % (17·4 v. 1·3 %; P < 0·001); and by 84 % in non-Indigenous residents (7·0 v. 1·1 %; P < 0·001). In a logistic regression model the observed decrease of folic acid deficiency between 2008 and 2010 was found independent of gender, age and ethnicity (ORcrude = 0·20; 95 % CI 0·18, 0·23; P < 0·001; ORadjusted = 0·21; 95 % CI 0·18, 0·23; P < 0·001).Conclusions: While voluntary folic acid fortification, introduced in 1995, failed especially in high-risk subgroups, the 2009 mandatory folic acid fortification programme coincided with a substantial decrease of folic acid deficiency in the entire population.",
keywords = "Erythrocyte folate, Folic acid, Indigenous, Nutrition, Secondary health data",
author = "Anna Slagman and Linton Harriss and Sandra Campbell and Reinhold Muller and Robyn McDermott",
journal = "Public Health Nutrition",
Slagman, A, Harriss, L, Campbell, S, Muller, R & McDermott, R 2019, 'Folic acid deficiency declined substantially after introduction of the mandatory fortification programme in Queensland, Australia: A secondary health data analysis', Public Health Nutrition, vol. 22, no. 18, pp. 3426-3434. https://doi.org/10.1017/S1368980019002258
Folic acid deficiency declined substantially after introduction of the mandatory fortification programme in Queensland, Australia : A secondary health data analysis. / Slagman, Anna; Harriss, Linton; Campbell, Sandra et al.
In: Public Health Nutrition, Vol. 22, No. 18, 01.12.2019, p. 3426-3434.
T1 - Folic acid deficiency declined substantially after introduction of the mandatory fortification programme in Queensland, Australia
T2 - A secondary health data analysis
AU - Slagman, Anna
AU - Harriss, Linton
AU - Campbell, Sandra
AU - Muller, Reinhold
AU - McDermott, Robyn
N2 - Objective: To investigate the prevalence of folic acid deficiency in Queensland-wide data of routine laboratory measurements, especially in high-risk sub-populations.Design: Secondary health data analysis. Setting: Analysis of routine folic acid tests conducted by Pathology Queensland (AUSLAB).Participants: Female and male persons aged 0-117 years with routine folic acid testing between 1 January 2004 and 31 December 2015. If repeat tests on the same person were conducted, only the initial test was analysed (n 291 908).Results: Overall the prevalence of folic acid deficiency declined from 7·5 % before (2004-2008) to 1·1 % after mandatory folic acid fortification (2010-2015; P < 0·001) reflecting a relative reduction of 85 %. Levels of erythrocyte folate increased significantly from a median (interquartile range) of 820 (580-1180) nmol/l in 2008 before fortification to 1020 (780-1350) nmol/l in 2010 (P < 0·001) after fortification. The prevalence of folic acid deficiency in the Indigenous population (14 792 samples) declined by 93 % (17·4 v. 1·3 %; P < 0·001); and by 84 % in non-Indigenous residents (7·0 v. 1·1 %; P < 0·001). In a logistic regression model the observed decrease of folic acid deficiency between 2008 and 2010 was found independent of gender, age and ethnicity (ORcrude = 0·20; 95 % CI 0·18, 0·23; P < 0·001; ORadjusted = 0·21; 95 % CI 0·18, 0·23; P < 0·001).Conclusions: While voluntary folic acid fortification, introduced in 1995, failed especially in high-risk subgroups, the 2009 mandatory folic acid fortification programme coincided with a substantial decrease of folic acid deficiency in the entire population.
AB - Objective: To investigate the prevalence of folic acid deficiency in Queensland-wide data of routine laboratory measurements, especially in high-risk sub-populations.Design: Secondary health data analysis. Setting: Analysis of routine folic acid tests conducted by Pathology Queensland (AUSLAB).Participants: Female and male persons aged 0-117 years with routine folic acid testing between 1 January 2004 and 31 December 2015. If repeat tests on the same person were conducted, only the initial test was analysed (n 291 908).Results: Overall the prevalence of folic acid deficiency declined from 7·5 % before (2004-2008) to 1·1 % after mandatory folic acid fortification (2010-2015; P < 0·001) reflecting a relative reduction of 85 %. Levels of erythrocyte folate increased significantly from a median (interquartile range) of 820 (580-1180) nmol/l in 2008 before fortification to 1020 (780-1350) nmol/l in 2010 (P < 0·001) after fortification. The prevalence of folic acid deficiency in the Indigenous population (14 792 samples) declined by 93 % (17·4 v. 1·3 %; P < 0·001); and by 84 % in non-Indigenous residents (7·0 v. 1·1 %; P < 0·001). In a logistic regression model the observed decrease of folic acid deficiency between 2008 and 2010 was found independent of gender, age and ethnicity (ORcrude = 0·20; 95 % CI 0·18, 0·23; P < 0·001; ORadjusted = 0·21; 95 % CI 0·18, 0·23; P < 0·001).Conclusions: While voluntary folic acid fortification, introduced in 1995, failed especially in high-risk subgroups, the 2009 mandatory folic acid fortification programme coincided with a substantial decrease of folic acid deficiency in the entire population.
KW - Erythrocyte folate
KW - Folic acid
KW - Nutrition
KW - Secondary health data
JO - Public Health Nutrition
JF - Public Health Nutrition
Slagman A, Harriss L, Campbell S, Muller R, McDermott R. Folic acid deficiency declined substantially after introduction of the mandatory fortification programme in Queensland, Australia: A secondary health data analysis. Public Health Nutrition. 2019 Dec 1;22(18):3426-3434. https://doi.org/10.1017/S1368980019002258


text:
Q: How to change linker scripts from samd21j18a to samd21e16b for sam-ba? I am trying to change the linker scripts that sam-ba (sam bootloader assistant) is using. The liner scripts are written for samd21j18a by Atmel Corporation (tcl_lib and applet). The samd21e16b Sram is 8 kB and the flash memory is 64 kB, based on the datasheet.
Based on the documentation, I need to change

*

*appletAddr and appletMailboxAddr accordingly in tcl_lib, based on the device selected and the SRAM occupied by the SAM-BA bootloader.

*Customizing ASF SAM-BA Applet Linker script for SAMD21E16B and latest ASF. I need to update the sections which are based on the device chosen, and the SRAM size occupied by the SAM-BA bootloader.

Do you have any resources that are helpful to understand this information in the linker scripts for customizing the chip (samd21e16b)?
What are appletAddr and appletMailboxAddr?
How they write sram size:
sram (W!RX) : ORIGIN = 0x20002000, LENGTH = 0x00002000 /* sram, 4K - sizeof(romcodesram) */

tcl_lib:
set cidr_addr 0x41002018
# *****************************************************************************
#                       CHIP NAME   CHIPID_CIDR
# *****************************************************************************
array set devicesList { samd21j18a 0x10010000
                        samd21j17a 0x10010001
                        samd21j16a 0x10010002
                        samd21j15a 0x10010003
                        samd21g18a 0x10010005
                        samd21g17a 0x10010006
                        samd21g16a 0x10010007
                        samd21g15a 0x10010008
                        samd21e18a 0x1001000A
                        samd21e17a 0x1001000B
                        samd21e16a 0x1001000C
                        samd21e15a 0x1001000D
                      }
global target
global commandLineMode
set isValidChipOfBoard 0
set version_mask 0xFFBF00FF
set chipname_list [array names ::devicesList]
set chip_id [format "0x%08x" [TCL_Read_Int $target(handle) $cidr_addr err_code]]
puts "Read device Chip ID at $cidr_addr --- get $chip_id"
set proc_id_masked [format "0x%08x" [expr $chip_id & $version_mask]]
foreach {key value} [array get devicesList] {
   set masked_chipId_Cidr [format "0x%08x" [expr $value & $version_mask]]
   if {[regexp $proc_id_masked $masked_chipId_Cidr] != 0} {
       puts "-I- Found chip : $key (Chip ID : $chip_id)"
       set isValidChipOfBoard 1
       break
   }
}

if { $isValidChipOfBoard == 0 } {
    if { $commandLineMode == 1 } {
        puts "-E- Invalid device or board!"
    } else {
        tk_messageBox -title "Invalid chip ID" -message "Can't connect $target(board)\n" -icon error -type ok
    }
    TCL_Close $target(handle)
    exit
}

namespace eval BOARD {
    variable sramSize         0x00008000
    variable maxBootSize      0
    # Vdd Memory 1.8V = 0 / Vdd Memory 3.3V = 1
    variable extRamVdd 1
    # External SDRAM = 0 / External DDR = 1 External PSRAM = 2 (not used)
    variable extRamType 0
    # Set bus width (16 or 32)
    variable extRamDataBusWidth 16
    # DDRAM Model (not used)
    variable extDDRamModel 0
}

# Standard applet commands + some SAMD21 specific commands
array set appletCmdSamd21 {
    init            0x00
    fullErase       0x01
    write           0x02
    read            0x03
    lock            0x04
    unlock          0x05
    gpnvm           0x06
    security        0x07
    erasebuffer     0x08
    binarypage      0x09
    otpRead         0x0a
    otpWrite        0x0b
    listbadblocks   0x10
    tagBlock        0x11
    readUniqueID    0x12
    eraseBlocks     0x13
    batchErase      0x14
    pmeccParam      0x15
    pmeccBoot       0x16
    switchEccMode   0x17
    trimffsMode     0x18
    eraseRow        0x40
    readDeviceID    0x41
    readLocks       0x42
    readFuses       0x43
    eraseApp        0x44
}

set target(board) "samd21_xplained_pro"

################################################################################
## PROCEDURES FOR COMPATIBILITY WITH OLDER SAM-BA VERSIONS AND USER DEFINED
################################################################################
if { [ catch { source "$libPath(extLib)/common/functions.tcl"} errMsg] } {
    if {$commandLineMode == 0} {
        tk_messageBox -title "File not found" -message "Function file not found:\n$errMsg" -type ok -icon error
    } else {
        puts "-E- Function file not found:\n$errMsg"
        puts "-E- Connection abort"
    }
    exit
}

array set memoryAlgo {
    "SRAM"            "::atsamd21_sram"
    "Flash"           "::atsamd21_flash"
    "Peripheral"      "::atsamd21_peripheral"
}

################################################################################
## Low Level Initialization
################################################################################

################################################################################
## SRAM : 32k
################################################################################
array set atsamd21_sram {
    dftDisplay  0
    dftDefault  0
    dftAddress  0x20000000
    dftSize     0x8000
    dftSend     "RAM::sendFile"
    dftReceive  "RAM::receiveFile"
    dftScripts  ""
}

################################################################################
## FLASH : 256k
################################################################################
array set atsamd21_flash {
    dftDisplay  1
    dftDefault  1
    dftAddress  0x00000
    dftSize     0x40000
    dftSend     "FLASH::SendFileNoLock"
    dftReceive  "FLASH::ReceiveFile"
    dftScripts  "::atsamd21_flash_scripts"
}

array set atsamd21_flash_scripts {
        "Read Device ID"                        "FLASH::ReadDeviceID"
        "Read Lock Fuses"                       "FLASH::ReadLocks"
        "Unlock All"                            "FLASH::UnlockAll"
        "Set Lock Bit 00"                       "FLASH::SetLock 0"
        "Set Lock Bit 01"                       "FLASH::SetLock 1"
        "Set Lock Bit 02"                       "FLASH::SetLock 2"
        "Set Lock Bit 03"                       "FLASH::SetLock 3"
        "Set Lock Bit 04"                       "FLASH::SetLock 4"
        "Set Lock Bit 05"                       "FLASH::SetLock 5"
        "Set Lock Bit 06"                       "FLASH::SetLock 6"
        "Set Lock Bit 07"                       "FLASH::SetLock 7"
        "Set Lock Bit 08"                       "FLASH::SetLock 8"
        "Set Lock Bit 09"                       "FLASH::SetLock 9"
        "Set Lock Bit 10"                       "FLASH::SetLock 10"
        "Set Lock Bit 11"                       "FLASH::SetLock 11"
        "Set Lock Bit 12"                       "FLASH::SetLock 12"
        "Set Lock Bit 13"                       "FLASH::SetLock 13"
        "Set Lock Bit 14"                       "FLASH::SetLock 14"
        "Set Lock Bit 15"                       "FLASH::SetLock 15"
        "Invalidate application"                "FLASH::EraseRow 32"
        "Erase application area"                "FLASH::EraseApp"
        "Read Fuses"                            "FLASH::ReadFuses"
        "Set Security Bit"                      "FLASH::SetSecurity"
}

set FLASH::appletAddr             0x20002000
set FLASH::appletMailboxAddr      0x20002040
set FLASH::appletFileName         "$libPath(extLib)/$target(board)/applet-flash-samd21j18a.bin"

# Initialize FLASH
if {[catch {FLASH::Init} dummy_err]} {
    if {$commandLineMode == 0} {
        tk_messageBox -title "FLASH init" -message "Failed to initialize FLASH access" -icon error -type ok
    } else {
        puts "-E- Error during FLASH initialization"
        puts "-E- Connection abort"
    }
    # Close link
    TCL_Close $target(handle)
    exit
    } else {
        #retrieve additionnal parameters from the Init function
        set appletAddrArgvps      [expr $FLASH::appletMailboxAddr + 0x18]
        set appletAddrArgvnp      [expr $FLASH::appletMailboxAddr + 0x1c]
        set appletAddrArgvasp     [expr $FLASH::appletMailboxAddr + 0x20]

        set flashPageSize         [TCL_Read_Int $target(handle) $appletAddrArgvps]
        set flashNbPage         [TCL_Read_Int $target(handle) $appletAddrArgvnp]
        set flashAppStartPage     [TCL_Read_Int $target(handle) $appletAddrArgvasp]

        puts "flashPageSize     [format "0x%08x" $flashPageSize]"
        puts "flashNbPage         [format "%d" $flashNbPage]"
        puts "flashAppStartPage [format "%d" $flashAppStartPage]"
        puts "-I- FLASH initialized"
}

################################################################################
array set atsamd21_peripheral {
    dftDisplay  0
    dftDefault  0
    dftAddress  0x40000000
    dftSize     0x10000000
    dftSend     ""
    dftReceive  ""
    dftScripts  ""
}

#===============================================================================
#  proc FLASH::ReadDeviceID
#===============================================================================
proc FLASH::ReadDeviceID { } {
    global   target
    variable appletMailboxAddr
    set      dummy_err 0

    # Mailbox is 32 word long (add variable here if you need read/write more data)
    set appletAddrCmd       [expr $appletMailboxAddr]
    set appletAddrStatus    [expr $appletMailboxAddr + 0x04]
    set appletAddrArgv0     [expr $appletMailboxAddr + 0x08]
    set appletAddrArgv1     [expr $appletMailboxAddr + 0x0c]
    set appletAddrArgv2     [expr $appletMailboxAddr + 0x10]
    set appletAddrArgv3     [expr $appletMailboxAddr + 0x14]

    # Init the ping pong algorithm: the buffer is active
    set bufferAddress $GENERIC::appletBufferAddress

    # Write the Cmd op code in the argument area
    if {[catch {TCL_Write_Int $target(handle) $::appletCmdSamd21(readDeviceID) $appletAddrCmd} dummy_err] } {
        error "Error Writing Applet command ($dummy_err)"
    }

    # Write the buffer address in the argument area
    if {[catch {TCL_Write_Int $target(handle) $bufferAddress $appletAddrArgv0} dummy_err] } {
        error "[format "0x%08x" $dummy_err]"
    }

    # Launch the applet Jumping to the appletAddr
    if {[catch {set result [GENERIC::Run $::appletCmdSamd21(readDeviceID)]} dummy_err]} {
        error "Applet readDeviceID command has not been launched ($dummy_err)"
    }

    puts "buffer address [format "0x%08x" $bufferAddress]"

    puts "Device ID :"

    set addr [expr $bufferAddress]
    # Return the error code returned by the applet
    if {[catch {set data [TCL_Read_Int $target(handle) $addr]} dummy_err] } {
        error "Error reading the buffer containing Device ID"
    }

    puts [format "0x%08x" $data]
}

#===============================================================================
#  proc FLASH::ReadFuses
#===============================================================================
proc FLASH::ReadFuses { } {
    global   target
    variable appletMailboxAddr
    set      dummy_err 0

    # Mailbox is 32 word long (add variable here if you need read/write more data)
    set appletAddrCmd       [expr $appletMailboxAddr]
    set appletAddrStatus    [expr $appletMailboxAddr + 0x04]
    set appletAddrArgv0     [expr $appletMailboxAddr + 0x08]
    set appletAddrArgv1     [expr $appletMailboxAddr + 0x0c]

    # Init the ping pong algorithm: the buffer is active
    set bufferAddress $GENERIC::appletBufferAddress

    # Write the Cmd op code in the argument area
    if {[catch {TCL_Write_Int $target(handle) $::appletCmdSamd21(readFuses) $appletAddrCmd} dummy_err] } {
        error "Error Writing Applet command ($dummy_err)"
    }

    # Write the buffer address in the argument area
    if {[catch {TCL_Write_Int $target(handle) $bufferAddress $appletAddrArgv0} dummy_err] } {
        error "[format "0x%08x" $dummy_err]"
    }

    # Launch the applet Jumping to the appletAddr
    if {[catch {set result [GENERIC::Run $::appletCmdSamd21(readFuses)]} dummy_err]} {
        error "Applet readDeviceID command has not been launched ($dummy_err)"
    }

    puts "buffer address [format "0x%08x" $bufferAddress]"

    puts "Fuses :"

    set i 0
    set addr [expr $bufferAddress]
    while {$i < [expr 2]} {
        # Return the error code returned by the applet
        if {[catch {set data [TCL_Read_Int $target(handle) $addr]} dummy_err] } {
            error "Error reading the buffer containing Device ID"
        }
        incr addr +4
        incr i +1
        puts [format "0x%08x" $data]
    }
}

#===============================================================================
#  proc FLASH::ReadLocks
#===============================================================================
proc FLASH::ReadLocks { } {
    global   target
    variable appletMailboxAddr
    set      dummy_err 0

    # Mailbox is 32 word long (add variable here if you need read/write more data)
    set appletAddrCmd       [expr $appletMailboxAddr]
    set appletAddrStatus    [expr $appletMailboxAddr + 0x04]
    set appletAddrArgv0     [expr $appletMailboxAddr + 0x08]
    set appletAddrArgv1     [expr $appletMailboxAddr + 0x0c]
    set appletAddrArgv2     [expr $appletMailboxAddr + 0x10]
    set appletAddrArgv3     [expr $appletMailboxAddr + 0x14]

    # Init the ping pong algorithm: the buffer is active
    set bufferAddress $GENERIC::appletBufferAddress

    # Write the Cmd op code in the argument area
    if {[catch {TCL_Write_Int $target(handle) $::appletCmdSamd21(readLocks) $appletAddrCmd} dummy_err] } {
        error "Error Writing Applet command ($dummy_err)"
    }

    # Write the buffer address in the argument area
    if {[catch {TCL_Write_Int $target(handle) $bufferAddress $appletAddrArgv0} dummy_err] } {
        error "[format "0x%08x" $dummy_err]"
    }

    # Launch the applet Jumping to the appletAddr
    if {[catch {set result [GENERIC::Run $::appletCmdSamd21(readLocks)]} dummy_err]} {
        error "Applet readDeviceID command has not been launched ($dummy_err)"
    }

    puts "buffer address [format "0x%08x" $bufferAddress]"

    puts "Lock status :"

    set addr [expr $bufferAddress]
    # Return the error code returned by the applet
    if {[catch {set data [TCL_Read_Short $target(handle) $addr]} dummy_err] } {
        error "Error reading the buffer containing Device ID"
    }

    puts [format "0x%4x" $data]
}

#===============================================================================
#  proc FLASH::SetLock
#===============================================================================
proc FLASH::SetLock { lockbit } {
    global   target
    variable appletMailboxAddr
    set      dummy_err 0

    # Mailbox is 32 word long (add variable here if you need read/write more data)
    set appletAddrCmd       [expr $appletMailboxAddr]
    set appletAddrStatus    [expr $appletMailboxAddr + 0x04]
    set appletAddrArg_value [expr $appletMailboxAddr + 0x08]

    if {$lockbit > [expr 16]} {
        error "Wrong lock bit number"
    }

    set writemask [expr 1 << $lockbit ]

    # Write the Cmd op code in the argument area
    if {[catch {TCL_Write_Int $target(handle) $::appletCmdSamd21(lock) $appletAddrCmd} dummy_err] } {
        error "Error Writing Applet command ($dummy_err)"
    }
    # Write value in the argument area
    if {[catch {TCL_Write_Int $target(handle) [expr $lockbit] $appletAddrArg_value} dummy_err] } {
        error "[format "0x%08x" $dummy_err]"
    }

    # Launch the applet Jumping to the appletAddr
    if {[catch {set result [GENERIC::Run $::appletCmdSamd21(lock)]} dummy_err]} {
        error "Applet lock command has not been launched ($dummy_err)"
    }

    puts "Region locked"
}

#===============================================================================
#  proc FLASH::UnlockAll
#===============================================================================
proc FLASH::UnlockAll { } {
    global   target
    variable appletMailboxAddr
    set      dummy_err 0

    # Mailbox is 32 word long (add variable here if you need read/write more data)
    set appletAddrCmd       [expr $appletMailboxAddr]
    set appletAddrStatus    [expr $appletMailboxAddr + 0x04]
    set appletAddrArg_value [expr $appletMailboxAddr + 0x08]

    set lockbit 0
    while { $lockbit < [expr 16]} {
        set writemask [expr 1 << $lockbit ]

        # Write the Cmd op code in the argument area
        if {[catch {TCL_Write_Int $target(handle) $::appletCmdSamd21(unlock) $appletAddrCmd} dummy_err] } {
            error "Error Writing Applet command ($dummy_err)"
        }
        # Write value in the argument area
        if {[catch {TCL_Write_Int $target(handle) [expr $lockbit] $appletAddrArg_value} dummy_err] } {
            error "[format "0x%08x" $dummy_err]"
        }
        # Launch the applet Jumping to the appletAddr
        if {[catch {set result [GENERIC::Run $::appletCmdSamd21(unlock)]} dummy_err]} {
            error "Applet lock command has not been launched ($dummy_err)"
        }

        puts "Region ($lockbit) unlocked"

        incr lockbit +1
    }
}

#===============================================================================
#  proc FLASH::SetSecurity
#===============================================================================
proc FLASH::SetSecurity { } {
    global   target
    variable appletMailboxAddr
    set      dummy_err 0

    # Mailbox is 32 word long (add variable here if you need read/write more data)
    set appletAddrCmd       [expr $appletMailboxAddr]
    set appletAddrStatus    [expr $appletMailboxAddr + 0x04]
    set appletAddrArg_param [expr $appletMailboxAddr + 0x08]

    # Write the Cmd op code in the argument area
    if {[catch {TCL_Write_Int $target(handle) $::appletCmdSamd21(security) $appletAddrCmd} dummy_err] } {
        error "Error Writing Applet command ($dummy_err)"
    }
    # Write the param value in the argument area
    if {[catch {TCL_Write_Int $target(handle) 1 $appletAddrArg_param} dummy_err] } {
        error "[format "0x%08x" $dummy_err]"
    }

    puts "About to launch set security bit procedure ..."

    # Launch the applet Jumping to the appletAddr
    if {[catch {set result [GENERIC::Run $::appletCmdSamd21(security)]} dummy_err]} {
        error "Applet security command has not been launched ($dummy_err)"
    } else {
        puts "Part is secured"
    }
}

#===============================================================================
#  proc FLASH::SendFileNoLock
#===============================================================================
proc FLASH::SendFileNoLock { name addr } {
    variable flashSize
    variable flashLockRegionSize
    variable flashNumbersLockBits
    variable appletBufferAddress
    global   commandLineMode

    if { [catch {set f [open $name r]}] } {
        puts "-E- Can't open file $name"
        return -1
    }
    fconfigure $f -translation binary

    #First Step check the locked sector
    set dummy_err 0
    set rewrite 0
    set size [file size $name]

    set dest [expr $addr & [expr  $flashSize - 1]]
    set first_page [expr $dest / $::flashPageSize]

    puts "File size : $size"
    puts "Flash size : $flashSize Flash page size : $::flashPageSize First page : $first_page"
    puts "Dest : $dest"

    if { $first_page < $::flashAppStartPage } {
        if {$commandLineMode == 0} {
            set answer [tk_messageBox -title "Attempt to write monitor area"\
            -message " Writing to the monitor area is forbidden, write operation aborted "\
            -icon error \
            -type ok]
        }
        return -1
    }

    if {[catch {GENERIC::Write $dest $size $f 0} dummy_err] } {
        puts "-E- Generic::Write returned error ($dummy_err)"
        close $f
        return -1
    }
    close $f
}

#===============================================================================
#  proc FLASH::EraseRow
#===============================================================================
proc FLASH::EraseRow { flashrow } {
    global   target
    variable appletMailboxAddr
    set      dummy_err 0

    # Mailbox is 32 word long (add variable here if you need read/write more data)
    set appletAddrCmd               [expr $appletMailboxAddr]
    set appletAddrStatus            [expr $appletMailboxAddr + 0x04]
    set appletAddrArg_param         [expr $appletMailboxAddr + 0x08]

    if {$flashrow > [expr 1024]} {
        error "Wrong flash region number"
    }

    if {[catch {TCL_Write_Int $target(handle) $::appletCmdSamd21(eraseRow) $appletAddrCmd} dummy_err] } {
        error "Error Writing Applet command ($dummy_err)"
    }
    # Write the param value in the argument area
    if {[catch {TCL_Write_Int $target(handle) [expr $flashrow] $appletAddrArg_param} dummy_err] } {
        error "[format "0x%08x" $dummy_err]"
    }

    # Launch the applet Jumping to the appletAddr
    if {[catch {set result [GENERIC::Run $::appletCmdSamd21(eraseRow)]} dummy_err]} {
        error "Applet eraseRow command has not been launched ($dummy_err)"
    }
    puts "Flash memory row erased."

}

#===============================================================================
#  proc FLASH::EraseApp
#===============================================================================
proc FLASH::EraseApp { } {
    global   target
    variable appletMailboxAddr
    set      dummy_err 0

    # Mailbox is 32 word long (add variable here if you need read/write more data)
    set appletAddrCmd               [expr $appletMailboxAddr]
    set appletAddrStatus            [expr $appletMailboxAddr + 0x04]
    set appletAddrArg_start_row     [expr $appletMailboxAddr + 0x08]
    set appletAddrArg_end_row       [expr $appletMailboxAddr + 0x0c]

    # Write the Cmd op code in the argument area
    if {[catch {TCL_Write_Int $target(handle) $::appletCmdSamd21(eraseApp) $appletAddrCmd} dummy_err] } {
        error "Error Writing Applet command ($dummy_err)"
    }

    set start    [expr $::flashAppStartPage/4]
    set end      [expr $::flashNbPage/4]

    # Write the starting row number in the argument area
    if {[catch {TCL_Write_Int $target(handle) [expr $start] $appletAddrArg_start_row} dummy_err] } {
        error "[format "0x%08x" $dummy_err]"
    }

    # Write the ending row number in the argument area
    if {[catch {TCL_Write_Int $target(handle) [expr $end] $appletAddrArg_end_row} dummy_err] } {
        error "[format "0x%08x" $dummy_err]"
    }

    puts "Start row: [format "0x%08x" $start]"
    puts "End row: [format "0x%08x" $end]"

    # Launch the applet Jumping to the appletAddr
    if {[catch {set result [GENERIC::Run $::appletCmdSamd21(eraseApp)]} dummy_err]} {
        error "Applet eraseApp command has not been launched ($dummy_err)"
    }

    puts "Application area erased"
}

Applets:
 /*------------------------------------------------------------------------------
 *      Linker script for running in internal SRAM on the SAMD21J18
 *----------------------------------------------------------------------------*/

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)

/* Memory Spaces Definitions */
MEMORY
{
    romcodesram (W!RX) : ORIGIN = 0x20000000, LENGTH = 0x2000
    sram (W!RX) : ORIGIN = 0x20002000, LENGTH = 0x00002000 /* sram, 4K - sizeof(romcodesram) */
}

SECTIONS
{
    /* startup code in the .isr_vector */
    .text :
    {
        . = ALIGN(4);
        _stext = .;
        KEEP(*(.isr_vector .isr_vector.*))
        *(.mailbox)
        *(.text .text.*)
        *(.rodata .rodata.*)
        *(.ramfunc .ramfunc.*)
        *(.glue_7)
        *(.glue_7t)
        *(.gcc_except_table)
        *(.rodata .rodata*)
        *(.gnu.linkonce.r.*)
        . = ALIGN(4);
        _etext = .;
    } > sram

    /* data */
    .data :
    {
        . = ALIGN(4);
        _sidata = .;
        _sdata = .;

        *(.data)
        *(.data.*)
        . = ALIGN(4);
        _edata = .;
    } > sram

    .bss (NOLOAD) : {
        _szero = .;
        *(.bss)
        . = ALIGN(4);
        _ezero = .;
    } >sram

    /* Stack in SRAM */
    _sstack = 0x20003FF0;
    /DISCARD/ : { *(.note.gnu.*) }
}
. = ALIGN(4);
end = .;

redpajama_set_name: RedPajamaStackExchange


sterling silver jewellery york fashion jewellery Rue B Sterling Silver Statement Earrings Sterling silver jewellery range of Fashion and Danon jewellery.
All silver jewellery sold by Rue B is 925 hallmarked. These earrings will come wrapped in a gift box and organza pouch with a jewellery care gift card. Free delivery on standard orders!