text:
Een dodenmars, een begrafenismars of treurmars is een klassieke mars bedoeld om te spelen bij begrafenissen of rouwplechtigheden, alhoewel hij ook vaak uitgevoerd wordt als een los muziekstuk. Het komt voor dat een dodenmars een onderdeel is in een groter werk zoals een sonate of symfonie. Een bekende dodenmars is het derde deel van Chopins Pianosonate Nr. 2 Opus 35.

Vorm
Een dodenmars staat bijna altijd in de mineurtoonsoort en heeft meestal een ABA-vorm, waarbij het middelste gedeelte (trio) in majeur staat. De vorm verschilt niet veel van de gewone mars. Over het algemeen staat een dodenmars in 2/4 maat. In de meeste gevallen heeft een dodenmars een ritme met gepuncteerde motieven, om het marcheren met de kist te ondersteunen met een passende impuls, of om deze beweging muzikaal te schilderen.

Geschiedenis

Oudheid
Al eeuwenlang wordt er muziek gemaakt bij de dood of de begrafenis. De Kelten hadden bijvoorbeeld treurzangen om de dood. Het bekende Griekse Seikiloslied, het oudst bekende voorbeeld van genoteerde muziek, is een grafschrift voor Seikilos' vrouw. Op Griekse begrafenissen werden ook klaagzangen gezongen. Over Romeinse begrafenismuziek is in vergelijking met de Griekse niet veel bekend. Er zijn bijvoorbeeld geen overgeleverde stukken genoteerde muziek, of theoretische boeken over muziek. Wel zijn er bronnen die aangeven dat er muziek was op o.a. Romeinse begrafenissen, zoals een reliëf uit Amiternum laat zien. In het leger werden nieuwe instrumenten ontworpen om bij het marcheren de soldaten te imiteren, wat de soldaten van de vijand angst zou moeten inboezemen. Later werden deze instrumenten ook voor andere militaire handelingen gebruikt, waaronder begrafenissen. Bij particuliere begrafenissen leidden gehuurde muzikanten marcherend de begrafenisstoet, en waarschuwden de toeschouwers dat er een begrafenisstoet op komst was. De instrumentengroep liep uiteen; bij een rijk iemand een voltallig orkest, een arm iemand moest het doen met bijvoorbeeld twee fluiten.

Middeleeuwen
In de middeleeuwen kwamen er met de opkomst van het christendom ook nieuwe begrafenisrituelen. De dodenmis bijvoorbeeld, die op verschillende dagen gezongen werd in de kerk. De (instrumentale) muziek bij de processie raakte in onbruik. In plaats van muziek werden bellen gebruikt om de begrafenisstoet aan te kondigen<ref>J. Mack Welford American Death and Burial Custom Derivation from Medieval European cultures.</ref> Er werd wel gedanst, poëzie gemaakt en muziek gemaakt naar oude gebruiken, maar dit was geen marsmuziek. Wel werd er een In paradisum gezongen bij het dragen van de kist.

 Renaissance
In de renaissance begon, net als andere gebruiken, het oude gebruik van marsmuziek bij de processie weer geleidelijk terug te komen. Componisten begonnen te componeren op teksten uit de Latijnse requiemmis. De mis werd nu ook af en toe gebruikt bij een begrafenis, samen met het In paradisum. Ook andere werken werden gezongen tijdens het lopen, zoals Thomas Morley's The Service for the Burial of the Dead.

 Barok
Rond 1650 ontstonden de eerste composities die daadwerkelijk dodenmars zijn getiteld. In de barok was marsmuziek niet het populairst, maar toch werd er wel instrumentale muziek gemaakt bij begrafenissen. In de late barok en het vroege klassieke tijdperk kreeg de mars, door opera's en danssuites, een belangrijkere rol. Een bekend voorbeeld is Dead March uit Händels Saul of Purcells March uit de Music for the Funeral of Queen Mary.

 Klassiek tijdperk
In het klassiek tijdperk, toen componisten zoals Haydn en Mozart de klassieke muziek geen koffiemuziek meer maakten, was de dodenmars een minder goed 'instrument' dan bijvoorbeeld de symfonie. Ondanks dat schreven Mozart en Haydn beiden toch dodenmarsen, of stukken met het karakter van een dodenmars. Componisten maakten de dodenmars tot een los werk, los van processies of een mis. Toch werd hij ook nog steeds gebruikt bij een processie. Ook nog steeds werd een begrafenismars gecomponeerd voor een processie, zoals Paisiellos Marche funèbre pour le Général Hoche, voor de dood van een van Napoleon Bonapartes generaals, Lazare Hoche.

 Romantiek
De dodenmars was perfect voor de idealen van de romantiek,{{(perfect?)}} en het genre was in deze tijd dan ook erg populair. Delen van symfonieën zijn soms een dodenmars, het tweede deel van Beethovens derde symfonie is hiervan een voorbeeld. Symfonieën van Bruckner en Mahler hebben het karakter van een dodenmars. Het eerste deel van de eerste symfonie van Mahler is bijvoorbeeld een dodenmars op het bekende Vader Jacob; het eerste deel van zijn vijfde symfonie is getiteld Trauermarsch (Duits voor treurmars). Zijn eerste compositie was een polka met een dodenmars. Bruckner heeft niet specifiek een dodenmars gecomponeerd in zijn symfonieën, maar veel hebben wel het karakter ervan. Het tweede deel van zijn zevende symfonie is bijvoorbeeld geschreven met de verwachting dat Wagner zou sterven. Chopin schreef zijn bekende Marche funèbre. Liszt en Wagner hielden er van met als hoogtepunt Wagners dodenmars uit Götterdämmerung en Liszt symfonisch gedicht: Heroïde funèbre.

 Bekende dodenmarsen
 March, sounded before her chariot uit Music for the Funeral of Queen Mary – Henry Purcell
 Maurerische Trauermusik K.477/479a – Wolfgang Amadeus Mozart
 Symfonie No. 3, deel 2 – Ludwig van Beethoven
 Marcia funebre - sulla morte d'un Eroe, deel 3 uit Pianosonate Op. 26 – Ludwig van Beethoven
 Marche funèbre, deel 3 uit Pianosonate No. 2 Op. 35 – Frédéric Chopin
 Marche funèbre, Op.72 no. 2 – Frédéric Chopin
 Marcia funebre, sulla morte d'un Pappagallo – Charles-Valentin Alkan
 Symphonie voor solo piano, Op. 39, no. 5. – Charles-Valentin Alkan
 Trauermarsch beim Tode Siegfrieds – Richard Wagner
 Marche funèbre d'une marionnette – Charles Gounod
 Trauervorspiel und Trauermarsch, S.206 – Franz Liszt
 Heroïde funèbre, S102 – Franz Liszt
 Album voor de jeugd Op. 39, deel 7 Begrafenis van de pop – Pjotr Iljitsj Tsjaikovski
 Symfonie no. 5, deel 1 – Gustav Mahler
 Funeral March for Abraham Lincoln'' – John Gross Barnard

Zie ook
 Requiem (mis)
 Uitvaartmuziek

Mars (muziek)
Begrafenis


text:
About Murdo Fraser
Murdo Fraser MSP for Mid Scotland and Fife
Promoted by Caroline Shiers on behalf of Murdo Fraser, both at The Control Tower, Perth Airport, Scone, Perth PH2 6PL
Copyright 2023 Murdo Fraser MSP for Mid Scotland and Fife. All rights reserved.

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: crash happened when I try to settitle of a UIButton instance here i have a custom UITableViewcell which contains several UIButton added into its contentview as subview. after when i'd like to assign these UIButton's titlelabel in the UITableView, but crash happened.(But I can assign these button's action to catch event.)
Here is my code:
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil];
        for (UIView *subviews in cell.contentView.subviews)
        {
            CGRect r;
            UIButton *btttn = (UIButton *)[subviews viewWithTag:subviews.tag];
            switch (subviews.tag) {
                case 101: case 102: case 103: case 104: case 105: case 106: case 107:
                    subviews.layer.masksToBounds = NO ;
                    subviews.backgroundColor = [ UIColor whiteColor ];

                    //[btttn setTitle:@"0" forState:UIControlStateNormal];// Crash happened here!
                    [btttn addTarget:self action:@selector (OnWorkHourClick:) forControlEvents:UIControlEventTouchUpInside]; //This line works if without upper line.
                    r = subviews.frame;
                case 12:
                    subviews.layer.masksToBounds = NO ;
                    subviews.backgroundColor = [ UIColor whiteColor ];
                    [btttn addTarget:self action:@selector (OnJobAddClick:) forControlEvents:UIControlEventTouchUpInside];
                    r = subviews.frame;
            }
        }
return cell;}

redpajama_set_name: RedPajamaStackExchange


text:
Q: Incorrect className of child component using babel-plugin-react-css-modules I'm trying to use babel-plugin-react-css-modules in existing React project. Most of components work just fine, however there is a problem with 'passing' style to child components.
I have some parent components like this:
SearchBlock/index.js
import "./style.scss"
import { SettingsIcon } from "../../Icons"
...

   <SettingsIcon size='17' color='#2991F5' />

SearcBlock/style.scss
.SearchBlock {
  ...

  .SettingsIcon {
     margin-right: 7px;
  }
...
    }

And child components like this
SettingsIcon/index.js
const SettingsIcon = (props) => {
...
    return (
      <svg
        width={size}
        height={size}
        viewBox='0 0 24 24'
        fill='none'
        xmlns='...'
        className='SettingsIcon'
      >
...

So the icon has an appropriate style in different components.
What I get in generated css files:
.src-components-Search-SearchBlock-___style__SearchBlock___2MeUy .src-components-Search-SearchBlock-___style__SettingsIcon___3SWQh {
        margin-right: 7px; }

Seems correct. However, the child element is rendered like this:
<svg ... class="SettingsIcon"><</svg>

instead of
<svg ... class="src-components-Search-SearchBlock-___style__SettingsIcon___3SWQh"><</svg>

I cannot use styleName in settingsIcon because webpack throws error without importing at least one stylesheet.
Is there any way to fix this?

My configuration
webpack.common.js
...
    test: /\.s?css$/,
                use: [
                    {
                      loader: 'style-loader',
                    },
                    {
                      loader: 'css-loader',
                      options: {
                        modules: {
                          mode: 'local',
                          localIdentName: isProd
                          ? '[hash:base64]'
                          : "[path]___[name]__[local]___[hash:base64:5]",
                        },
                        sourceMap: true,
                        importLoaders: 1,
                        onlyLocals: false,
                      },
                    },
                    {
                      loader: 'postcss-loader',
                      options: {
                        sourceMap: true,
                      },
                    },
                    {
                      loader: 'sass-loader',
                      options: {
                        sourceMap: true,
                      },
                    },
                  ],
            },
...

babel.config.js
const isProd = process.env.NODE_ENV === 'production';

function createReactCssModulesPlugin() {
  return [
    "react-css-modules",
    {
      filetypes: {
        ".scss": {
          syntax: "postcss-scss",
          plugins: [
            "postcss-import-sync2",
            [
              "postcss-nested",
              {
                bubble: ["@include"],
                preserveEmpty: true,
              },
            ],
          ],
        },
      },
      generateScopedName: isProd
        ? '[hash:base64]'
        : "[path]___[name]__[local]___[hash:base64:5]",
      webpackHotModuleReloading: isProd ? false : true,
      exclude: "node_modules",
      handleMissingStyleName: isProd ? "throw" : "warn",
      autoResolveMultipleImports: true,
    },
  ];
}

module.exports = function (api) {
  api.cache(true)
  return {
    plugins: ["@babel/transform-react-jsx", createReactCssModulesPlugin()],
  };
};

A: 8 months have passed and you probably know the answer by now, but I'm gonna post my answer anyway.
SearchBlock/style.scss
.SearchBlock {

  .SettingsIcon {
    margin-right: 7px;
  }
}

SettingsIcon/index.js
const SettingsIcon = (props) => {
  return (
    <svg
      ...
      className='SettingsIcon'
    >

This will not work because your class .SettingsIcon is in the local scope of your component in SearchBlock/index.js
You can either do the styling of SettingsIcon/index.js inside it like so:
SettingsIcon/index.js
import "./style.scss" // style for SettingsIcon

const SettingsIcon = (props) => {
  return (
    <svg
      ...
      styleName='SettingsIcon'
    >
  )
}

or pass the class as a prop like so:
SearchBlock/index.js
import style from "./style.scss"
import { SettingsIcon } from "../../Icons"

 <SettingsIcon size='17' color='#2991F5' extClasses={ style.SettingsIcon }/>

SettingsIcon/style.scss
.SearchBlock { ... }

.SettingsIcon {
   margin-right: 7px;
}

SettingsIcon/index.js
import "./style.scss" // style for SettingsIcon

const SettingsIcon = (props) => {
  return (
    <svg
    ...
    styleName={ props.extClasses }
    >
  )
}


The newest addition to D.C.'s museums of American history, the National Museum of African American History and Culture is the only one of its kind, dedicating every inch of space to the life of African Americans throughout history. This isn't some candy-coated telling of American history, it is raw and visceral, honest and oftentimes brutal. Because of its significance and high praises, the museum visit will need to reserved well in-advanced. You can buy your tickets at the beginning of each month, with up to six purchases at a time.
This is a collection of 19 museums, altogether. You'll find a historic timeline over a wide range of subjects, cultures, and traditions. You'll probably never get to see all of there is to the Smithsonian Institute, so it is advised that you plan the exhibits in-advanced, in order of the ones that you find to be most interesting or exciting. Keep an eye out for the critically-acclaimed exhibits that may seem pedestrian at first glance, as there are some great interactive portions that are often overlooked, like the History of Flight and the Natural History museums.
Of course, you shouldn't pass up the opportunity to see one of the most powerful monuments in the country, and in some ways, the World. In order to get the full experience of visiting the Martin Luther King Jr Monument, you should plan to take your time and read each quote scripted on the wall and reflect on the importance of have a monument that reflects a person of color. And you have to take plenty of pictures.
Washington D.C. is more than just old government buildings and museums, it has a lot to offer with its natural surroundings. The Potomac River is a beautiful and refreshing visit for anyone who enjoys the outdoors. The sounds of the rushing water provides an experience to meditate and enjoy yourself. You can take up a bit of hiking and kayaking at the Great Falls National Park, even if you have no previous experience. The river provides a moderate challenge for kayakers; you can join a tour in the park, if you feel safer traveling in a group.


text:
package net.floodlightcontroller.flowstatistics.dao;

import net.floodlightcontroller.flowstatistics.PktSummary;

/**
 * Created by zhensheng on 2016/7/21.
 */
public interface PktSummaryDao {
    public void insertPktInfo(PktSummary pktSummary);
}

redpajama_set_name: RedPajamaGithub


Up-To-U was established in 2005, since then introducing a "shop & earn" concept that allows customers to enjoy great discounts and incentives whenever they shop at any Hockhua Tonic outlet island wide.
At the same time, whenever members refer a new customer to the company, they will also automatically participate in the referral programme scheme to earn extra cash rewards quarterly.
To date, we have more than 100,000 members who are enjoying the benefits of Up-To-U. It is our continuing wish to see even more people benefitting from this rewarding scheme and be able to enjoy a healthy and wholesome journey with us.
One of the reasons our customers have been following us through the years is because of our parent company Hockhua Group's strong presence in the world of retailing health products and tonics for over 25 years. This include: Ginseng, Bird's Nest, Wine, Dried Seafood, Chinese Herbs and Health Supplements.
In Hockhua Group having more than 300,000 customers and over 50 outlets in Singapore, Hockhua Group has been experiencing great success since its inception nearly three decades ago.
Copyright 2014 © Up-To-U Marketing Pte Ltd. All Right Reserved.


A few nice things people have said!
"So nice to be able to share the same stage with passionate musicians, who at the drop of a hat can also lead and own the stage – Steve Trigg, I would work with you again in a heartbeat"
"I've toured with Steve Trigg on numerous occasions over the last few years and I've found him to be be a top musician, honest performer and all round blinding geezer, 'nuff said' – its a big fat yes from me"
"I've gigged with Steve on numerous occasions, even recorded a very memorable live BBC session with him for which he got called into at the last minute; he played like he'd been blowing those tunes all his life which epitomises both his ability and his professionalism – plus he's a cool geezer to hang out with too….."
"Steve is a killing trumpet player with a big sound and a big heart. I've enjoyed many great gigs with him over the years"
"I've known Steve for over 10 years – in that time we've worked together on stage and in the studio. Not only is he an excellent musician and arranger with a great sound and feel, he is thoroughly professional in all that he does – punctual, polite and easy to work with, I would recommend him without hesitation"
"I have known and worked with Steve Trigg for over 20 years when the Little Big Horns augmented my band. Not only is he a brilliant trumpeter and musician but is also a superb brass arranger. He brings a lot of fun and dynamism to the stage too, helping to create a great atmosphere in the audience. Highly gifted, with a great sense of timing"
"I love the Heart and Soul Steve puts into my show when he works with me and how The Little Big Horns work out wonderful horn lines together and give it all on the stage. That's Tops in my Book.!!!!"
"Steve is an inspiring musician and a great guy to work with. He made a fantastic contribution to the Grand Drive album 'See the Morning in'. A consummate solo and ensemble player"
"(The Little Big Horns are) The best brass section I've worked with since my time in Dexy's"
My session with Steve and the Little Big Horns was a pleasure from start to finish. Steve was a big help regarding arrangements and they provided the authentic sound I was looking for on the day. Very pleased with the results.
"Steve made an outstanding contribution to my rebooted videogame soundtrack for Transport Tycoon both in tracking section parts but more notably, knocking out some solo trumpet chops from serious to cheeky that had me grinning from ear to ear. He's quick, smart, self-editing and totally reliable - a gifted player with wonderful musicality and vibe. It's also been an absolute pleasure and a blast to share live music stages with him a few times. A first call"
"Steve Trigg can assemble a great horn section - chart out some terrific parts - and get 'em killer ready to record - before you've even realised you need brass on your song!"


text:
Dmitrij Nikolajevič Patrušev (rusky Дмитрий Николаевич Патрушев; 13. října 1977, Leningrad) je ruský bankéř a politik, od května 2018 ruský ministr zemědělství.

Dmitrij Patrušev je synem Nikolaje Patruševa, bývalého ředitele FSB a současného tajemníka Bezpečnostní rady Ruska.

Patrušev je v důsledku mj. ruské invaze na Ukrajinu v roce 2022 na sankčních seznamech Austrálie, Kanady a Velké Británie.

Život
Patrušev promoval v roce 1999 na Státní vysoké škole managementu. V letech 2002 až 2004 studoval na Diplomatické akademii obor Světová ekonomika. V roce 2006 absolvoval Akademii FSB.

V letech 1999 až 2002 pracoval na ruském ministerstvu dopravy. V roce 2004 nastoupil do VTB Bank. Od roku 2007 zde zastává pozici viceprezidenta. V letech 2010 až 2018 byl předsedou představenstva a členem dozorčí rady Ruské zemědělské banky.

V letech 2016 až 2021 byl členem představenstva Gazpromu.

Dne 18. května 2018 byl jmenován ministrem zemědělství. Dne 21. ledna 2020 byl do této funkce opětovně jmenován ve vládě premiéra Michaila Mišustina.

Rodina
Patrušev je svobodný. Má šest dětí: tři syny a tři dcery.

Reference

Ruští ministři
Ruští bankéři
Narození v roce 1977
Žijící lidé
Muži

redpajama_set_name: RedPajamaWikipedia


text:
Home/Politics/Ex-Mugabe Ally Mutasa Rattles Mugabe as he Seeks SADC Region's Aid
Ex-Mugabe Ally Mutasa Rattles Mugabe as he Seeks SADC Region's Aid
January 15, 2015	Politics
HARARE – Zanu PF appears rattled by this week's unexpected move by a group of disaffected party members who are taking President Robert Mugabe head-on over his increasingly contested control of the former liberation movement, with party bigwigs and lickspittle State media going apoplectic yesterday over the challenge.
Analysts told the Daily News yesterday that the over-the-top reaction by senior party officials, including threats and unbecoming insults directed at former Presidential Affairs minister Didymus Mutasa, left, was a clear sign that the challenge against Mugabe by many of Zanu PF's leading lights had touched a raw nerve.
Mutasa move rattles Zanu PF Reportage and commentary in lapdog State newspapers ranged from hysterical calls for Mutasa to be expelled from Zanu PF forthwith, to the tired refrain that what he and his colleagues were doing allegedly "confirmed allegations levelled against former Vice President Joice Mujuru's cabal of working with the opposition to unseat Zanu PF and eventually assassinate President Mugabe".
Zambia-based political analyst, Shakespeare Hamauswa, said the rabid reaction by officials of the ruling party had not come as a surprise, adding that it was a clear sign of the panic within the party, as well as notice of the rejuvenation of the Mujuru camp which had a strong social base.
"I would like to think that the environment now presents opportunities for the second Save Zimbabwe Campaign as we are likely to witness more chaos in Zanu PF and Zimbabwe.
"This has obviously shaken Zanu PF and they are in panic mode. It is also possible that the Mnangagwa camp made mistakes by thinking their problems are over because their enemy Mujuru had been dethroned.
"Possibly, all this explains again that Mutasa and company had realised that they still have residual influence and have realised that it is Mugabe and the other faction which seemingly won the battle, who are in tatters. Thus, they are simply taking advantage of the wrangles within the Mnangagwa faction," the Mulungisi University political science lecturer said.
South Africa-based Zimbabwean businessman, Mutumwa Mawere, said although the dispute would appear to be a domestic Zanu PF matter, the constitutional and legal implications would haunt Zimbabweans for a very long time.
"The beneficiary of the unorthodox removal of former VP Mujuru is a trained attorney and minister of Justice, but one would expect the protectors of the state Constitution to be the last to be accused of undermining it.
"When a secretary of administration of any party steps up to make the kind of allegations made, one is compelled to take notice of the implied justice. The promise of independence could not have been rule by law but rule of law as provided for in the Constitution.
"However, any instrument that purports to be legal that limits the rights of any citizen without the due process of the law cannot be clothed as a constitutional measure," Mawere said.
Crisis Coalition in Zimbabwe director, Mcdonald Lewanika, said the latest challenge could not be taken for granted, although the situation was not entirely ripe for the opposition.
"Zanu PF is definitely changing and new alliances, accommodations and compromises will be sought. But we cannot take for granted that the nature of opposition to mainstream Zanu PF will be as it was in 2008, by 2018.
"But given the nature of those who are ascendant in Zanu PF and the fact that the popular Zanu PF base is divided and possibly being decimated, we may easily see a return to the resorting to violence and coercion as a means of capturing and retaining State power?
"We have to bear in mind that the Zanu PF that we see has the architects of Gukurahundi, the authors of POSA and AIPPA and are not hesitant about using chicanery and force to capture and retain power.
"It is also clear that if the incumbent ruling party president, who is also the Head of State, were to vacate State and party offices, the chaos that will ensue is self-evident as the two VPs have no nexus with the ruling party outside the personal preference of the incumbent.
"Where would their legitimacy to succeed the incumbent come from if they have escaped the eye of the democratic needle?" Lewanika said.
A politburo member who spoke on condition of anonymity said it was unfortunate that Mugabe had pushed out fellow comrades who had helped him to liberate the country, and had thus allegedly decided to align himself with "sellouts."
"It is unfortunate that things have been allowed to reach this point where some comrades feel they have been pushed against the wall and that it is time that they stood up."
The politburo member also accused Mugabe of "ill-treating his liberation war comrades" at the instigation of new party cadres of a "dubious standing".
"Mugabe was made to create enemies out of his friends by those who misinformed him that these comrades were his foes. I think we need to look at ourselves as a party and to self-introspect in order that we can bring the party back to its founding values.
"What is particularly painful is that it is seemingly impossible for us to reconcile with our own comrades such as (Didymus) Mutasa and yet we managed to do that with the whites in 1980 who were oppressing and killing us. We also did it again when we signed the Unity Accord," he added.
Analysts have said that Mugabe faces possibly his biggest political challenge since he assumed the leadership of both Zanu PF and Zimbabwe, with his one-time trusted lieutenants now evolving into a formidable tag-team as they bid to pressure him to run the party and the country more democratically.
They also say the current pressure could see Mugabe completely losing his tight grip on Zanu PF and ultimately lead to the 90-year-old losing the leadership of the party completely.
Serving party heavyweights, liberation war pioneers and analysts who spoke to the Daily News on Tuesday said the latest "frontal attack" on Mugabe by the disaffected members sympathetic to Mujuru had "never been witnessed before" and threatened to sweep the nonagenarian out of power.
They also blamed Mugabe's wife Grace and some Mafikizolos (Johnny-come-latelies) for "the self-inflicted mess" that now confronted Mugabe and Zanu PF.
These sentiments followed the unprecedented move by the party stalwarts on Monday, including perceived allies of Mujuru, to confront
Mugabe head-on — a development analysts say is set to shake the ruling party to its core, and possibly result in the party of liberation splitting down the middle.
The party heavyweights, led by Mutasa, have bluntly called Zanu PF's damp squib "elective" congress that was held in Harare late last year "null and void".
They also, ominously, slated all the party appointments and changes that were made just before, during and after the controversial congress — pitting themselves for a titanic showdown with Mugabe,
Grace and party hardliners who led the assault on Mujuru and all party officials who were perceived to be sympathetic to her.
In a statement that was provocatively signed by Mutasa in his capacity as the ruling party's secretary for administration, "in the broad interest of democracy and in defense of the Zanu PF founding principles", the disaffected party members called for the nullification of the entire process of "the so-called congress", deeming it constitutionally flawed.
They also agitated for the re-instatement of "the entire constitutionally-elected office bearers of the party in all structures of all wings, as at the 1st of July 2014".
The no-holds barred statement also called for the nullification of all "purported constitutional amendments drafted and rail-roaded immediately before this so-called congress", as well as the restoration of the "elective dignity of congress and the one-man one-vote principle as enunciated by our armed struggle and constitution".
The statement shook the entire Zimbabwean body politic and prompted many serving Zanu PF bigwigs to proclaim in interviews with the Daily News that they were ready to join the disaffected members in their fight to "restore Zanu PF to its former self" and end the party's dictatorship.
"Just watch this space, we have suffered enough," said a central committee member who requested anonymity for fear of victimisation.
"Since the liberation struggle, people have been treated unfairly and there is no justice in the party. We want Zanu PF to return to its founding principles and values and it is time that we all joined hands and ended this dictatorship," the official added.
Previous Minister Musanhu ordered to vacate property
Next Roads in Zimbabwe versus Roads in South Africa
#SouthAfrica former president Jacob Zuma scathing letter to Cyril Ramaphosa
'Crisis Exists in Opposition Parties'
Gideon Gono: the truth about Reserve Bank of Zimbabwe debt and farm mechanisation
Furious Mudzuri Labels MDC Alliance 'Non-Existent Political Party' After Expulsion
Top MDC official Elias Mudzuri has scornfully dismissed Thursday's reports he had been expelled from …
Man Kills Brother in Land Inheritance Dispute
Hwange fault spawns extra load-shedding
LADY CHEVRONS TOUR OFF
Chinhoyi Businessman Loses U.S.$60k to Robbers


Although the Ironsides map covers all the British Isles it is the 1st English Civil War which is simulated, events in Scotland and Ireland are only relevant in the supply of troops into England and Wales. There are no units for the rebels in Ireland nor the Scottish army stationed there, Royalist units hunker down in cities, suffer attrition and hope for the cessation and possible transport overseas. There is no point in wasting men trying to suppress rebel cities. Scotland always enters in a state of civil war, instead of marching South and not worrying about a few highlanders in the hills the loyal Scots would do well to wipe the rebel Scots before heading South. The movement system prevents any Scottish army from swiftly marching South, if the King gets the Scots (1 in 10 chance) it is a relief to have a secure rear but it will take a long time before the Scots fight any English. Fans of Montrose will be disappointed to learn that there are no highlander units, at least you can no longer lose support in Scottish towns by your highlanders killing everyone inside then going home.
A number of obvious faults in the rules and charts have to modified, Royalists and Roundheads are mixed up, - should be + on the siege table and two terrain effects chart variations are provided. The map contains a number of errors so use the terrain chart on the handouts, even so the Sussex Downs are rated the same terrain as mid Wales. I doubt if the Downs were enclosed at this date but must have boasted a better road system than mid Wales if only on the grounds of worse weather on unimproved roads. Minor glitches on foreign maps can be ignored but when looking at what I can see out of the window the Acrylic paint and roller pen come to hand. The Severn should be tidal river below Gloucester because it just is, incidentally Gloucester should e 1 hex further South. There is no getting out of writing on the Map because 3 cities are on the city manifest but not the map. It ould be folly to expect every crucial city to be on the map (there is no time to play out every siege), some dwell close to each other at this scale, Leeds could include Bradford and Pontefract Castle. Some omissions will be missed by chrome hunters, no Basing House, others are debatable, Taunton had a big influence on events in the West but is not on the map. Those who don't mind changing the map can block out and add cities while changing resource levels to keep their total constant. Truro is a must without which the Royalists will never have a foothold in the West, locally I can safely say there has been nothing of worth at Aberffraw this millenium. Cardiff is in the wrong place (that's Chepstow), Bangor is represented (an open town) but not the 2 serious walled towns of Conway and Caernarfon. The basic system is pulled out of Give Me Liberty. Commanders are rated as 1 to 4* Generals (Give Me Liberty only went up to 3*), the rating defining how many units each can command. The same activation system is used with a player choosing between moving 1 command or rolling a die for up to 6 moves at a risk of the opposition gaining 1 or 2 moves and then having to roll again. Generals can each command 1 leader of each lower rank, a 4* can move a 3*, 2*and 1* as well,the biggest moving single stacks will always be under 4* Generals.
More troops can be shifted by using more than 1 activation to move multiple commands out of the same hex at a risk of allowing the opposition to move away. The advantage of this system is to restrict activations per turn (2 weeks Summer, 4 Winter) and keep action to 1 or 2 crucial areas while everyone else sits around waiting for a high activation score. If just 1 activation will bring on a battle or save an army rolling is not advisable.
Although the overall feel and game play of this system is acceptable it can in no way be thought of as a simulation of actions in the ECW. The rank of the supreme leader in a stack will affect how big armies are on campaign, Charles and Essex are the only 4*s, the is no option to uprate Fairfax when the New Model Army is formed (nor to sack Waller, Essex and Manchester). Cavalry is harder to command than infantry, a 1* General can pick up 6 foot or 4 horse but cannot mix the 2, a family of Generals can mix horse and foot within a stack. Cavalry points are half the size of infantry (250 to 500 men), as the war progressed the ratio of cavalry to foot increased (the foot surrendered while horse ran away) yet in Ironsides it is handy to have plenty of PBI for use in sieges and to soak up the losses in battles. The overall size of armies that can be moved is roughly right, Charles can move his 4,500 horse and 4,000 foot to Naseby with 1 activation, the Scottish and Parliament armies at Marston Moor (7,000 horse, 20,000 foot) would take 3 activations to move around, Rupert and Newcastle would require 2 more. Good thing all the action around Cropredy Bridge took place the turn before or there would be way too many activations in a single turn.
Horse after Marston Moor showed a marked desire to return home however futile the project. Isolated strongholds in their own backyard prevented armies from advancing rapidly, Newcastle preferred to block up Hull rather than march into Eastern England. Apart from Trained Bands (tied to London and York, York? Shift them to Cornwall) no troops are tied to an area, you can transfer then at will to any theatre.
Being fair there are factors in Ironsides that keep forces from going too far apart from lack of activations. Assuming you are playing to win victory points must be earned by capturing all cities in each of the 13 areas England and Scotland are divided into. London nets 8 points, the Isle of Man 1, other areas are considerably larger and net from 2 to 5 points based on size and population. It makes a great deal of sense to knock out all enemy cities in some areas while holding on to just 1 city in front line areas. Hull, Gloucester and Pembroke (Milford Haven on this map) become foci of attention again. 120 points are required to win but Charles gets 50 for being alive and free, Parliament get 50 if they kill or capture him, major victories (8 dead from the loser) net another 5. Historically Parliament were rarely below 14 points a turn, the King seldom above 3, a net gain of 11 for the Essex boys. Points are counted in interphase turns, 3 a year but only 1 in 1642 (the game starts in September), a historical Parliament victory in late 1645 not counting battles.
Cavalry come into their own during battles but it is also important to be at least equal in foot. Battles begin with cavalry lining up against each other, the chart is factor based with a bonus for good odds. Although any number of Generals may be in a hex only 2 take part in battles (others may step in if either of those get stiffed) one to command the foot, one the horse. A die is rolled against each General to give a modifier for the whole battle of -3 to +6. Cavalry fight it out until 1 side is unable to continue, losses of at least 10% will inflict a morale test which may lead to disruption (unable to fight) or rout. The winner of cavalry combat can commit his horse to the infantry battle if he rolls less than his cavalry General's horse rating (Cromwell is an 8, most others are 3, 4 or 5). Artillery get to fire once but because they move 3 compared to foot's 5 often neither side will bring any. Infantry combat follows the same system as horse, if cavalry has been committed there is a column shift. Either side can pull out of infantry combat at the end of a round or both can roll again, disruptions and routs will force an army to pull out, losses reaching the decisive 8 will make a force think about it. With 10% losses forcing a morale check, any army that can keep above 10 in strength is at an advantage even if faced by superior but fewer troops.
is to rout followed by failed morale then losing all leaders as the opposing army swamps over the hex. Routed and disrupted forces move 1 point slower then when in good order so running away after a battle except into a nearby city is unlikely. The best bet is to emulate history and bug out with the horse leaving the foot to shift for themselves. With morale recovery occurring at the beginning of every player turn, defenders gain an advantage. Whatever losses the defender may take his next phase will be to recover morale, any disruptions are removed allowing a swift jump onto the still battered erstwhile attackers. If still weak after recovery, the army can hoof it before they are ttacked again. A common result of ECW battles was a draw, Edgehill, 1st and 2nd Newbury, both sides being to battered to fight again in the near future. Moving morale recovery to the last phase in a turn helps somewhat, when A attacks B, A recovers (Edgehill) or fails (Naseby) morale after the battle, he cannot exploit because next turn is B's. B cannot recover or fail morale until after combat so if disruptedor routed will be unable to attack and take advantage of the mess A is in. If B is scarcely touched by the battle but A fails a rout test he will swamp over what is left, think of this as the post battle surrender of Royalist foot after Naseby. Overall losses will be greater from attrition and sieges than from battles which is correct. Attrition is related to the quality of troops and commander present. The only terrain modifier is for besieged units, numbers are counted by troop type and not overall total. 11 is the highest column for attrition tests, if stacks are going to be big they may as well be over 11 of each troop type. Attrition is heavily die based to the extent of some forces losing no units while others lose 6 or more. If counters were marked for where they came from, troops far from home could be disadvantaged, there are not enough counters to mark units by area without recourse to a colour photocopier..
will put 10 + units in crucial cities, multiplied by 2, 3 or 4 these would be well hard, stacking should not be a factor in normal play, hexes are 10 miles or so, the King had his main army that close to Oxford. The amount of units that can be crammed into a city would become significant when besieged but if that force were large it would be hard to block in and place under siege. To compromise, the printed strength of a city is the maximum number of units that may be besieged inside. The strength of cities for the purpose of sieges is now defined as the garrison strength (which may not exceed the maximum) plus the printed strength.
say it is a pretty big change.
town passed. High activation rolls in the early few turns will be valuable in increasing territory. The 2 main armies begin in Nottingham and Northampton, historically the King went to (converted) Shrewsbury and Chester then headed for London by passing Coventry. Essex took Worcester from the King, noticed he was needed to protect London and the 2 met up at Edgehill. In Ironsides it is conceivable for both armies to stay put because all the minor leaders have shot off to convert towns. The initial set up leads to eventual control not unlike historically after a lot of trouble, one is reminded of Peloponesian War (part of Imperial Governor in the Ariel big box) where 2 special turns were used by Athens and Sparta to map out their pre-war spheres of influence. For those who want to fight a war rather than roll dice a historical set up is appendixed.
plus London, Lincoln, Sheffield, Hull, Manchester, Scarborough, Leeds, Boston and Pembroke.
All cities in Border region plus Isle of Man. Truro, Newark, Shrewsbury (new city), Hereford and Worcester.
All cities not held by Parliament in Yorkshire, North Midland and Wales regions.
All units must be supported in the 1642 interphase. No victory points are awarded in the 1642 interphase.
Chris Jones has a few words to say (thankfully not about colectable card games).
Ironsides, having played both solo and face to face several times I can honestly say I'm not particularly impressed with it. If I wasn't Enfglish and didn't have an interest in the period I would probably never play it again.
The quality of production is fine and I do like the movement activation table - this elemennt of uncertainty always adds something to a game. One thing that is missing is holding boxes - stacks of 5 or more counters are silly. 3W put these in their game Frederick the Great which is simillar to Ironsides but we've found plays better. On a final note I own a UK boxed game bought in 1978 and published by Ariel games called English Civil War. Despite its age its a much better game using a simillar premise as Ironsides but area movement. It has much les cities - therefore less sieges and naval rules are abstracted (how does the Royalist in Ironsides prevent his navy getting trashed in the 1st months of the war?) The one redeeming feature of Ironsides is that it has prompted me to read my copy of C. V. Wedgewood's "The Kings War".
The same friend who has Frederick the Great also has Lion of the North. A group of us spent many happy hours playing Great Battles of Alexander and SPQR (plus modules) and as this was teh same system it seemed a good, if somewhat expensive buy. Result, a bit dissapointed, its a trifle tedious, the rules are as you described fine in detail but missing the big picture. It is very difficult to imagine what units are doing as they move around the batlefield. We've only played the Lutzen scenario so maybe my opinion wil change after a go at tthe Brietenfield map, I can't see the Imperialist wining tthough.
On a happier note another friend has introduced me to the delights of Fire Team produced by WEG and designed by Jon Stoddard. Having some experience of small scale platoon/company level training I found this an excellent way of introducing the nature of modern weapons and the different tactical doctrines utilised by NATO and SDoviet typoe forces. Wel worth having 2nd hand. reference the Harrogate Pirate you wrote about in ZOC. It seems this man has a bad reputation everywhere for exactly the reasons you stated. A friend, Dave Thomas, wh'se a dealer and atends most shows tells me that all the other dealers dislike him and often make him the but of some evil trick.
ZOCo, army boxes are essential for Ironsides, luckily there are plenty of out of the way parts of the map to use as holding areas. English Civil War is Roger Sandel's game also published as Ironsides, a rather battered copy fetched £11 at the auction. There is no getting away from sieges in the English Civil War, Ironsides still has too few for the true simulation gamer. A more detailed book than Wedgewood's is S. R. Gardener in umpteen volumes although most of the juicy stuff takes place in volumes 1 and 2. I played Frederick the Great (3W) with Chris and am of the opinion that the S&T version is better although as usual the errata improves it. 3W's game is far longer we played 1 year in about 5 hours including set up and learning the rules, the whole campaign would be mighty long, Decision use less time for the whole show.


British Columbia-based artist Nicole Dextras creates eye-catching installations with an icy twist. Exploring thought-provoking themes like environmentalism and ephemerality, Dextras has crafted a collection of Frozen Textiles that transform ordinary garments into hanging icicles, blocks of ice, and even a larger-than-life Bouquet.
Equally inspired by science fiction and fanciful folklore, this ethereal Bouquet installation captures Dextras' interest in reimagining nature. Relying on nothing more than a spray bottle full of water and Alberta's frigid temperatures, Dextras froze a selection of 15 dresses from the 1940s and 1950s. Over the course of several days, ice began to cloak each individual garment, freezing their frills and full skirts into fabric petals.
My Modern Met granted permission to use photos by Nicole Dextras.


The New Covenant is not yet complete. In case you didn't get the connection between the two posts in the latest series, let me connect the dots. Jeremiah prophesied of a new covenant which would be made with the nation of Israel. The arrangement under this new covenant would include the fact that there would be no need to teach anybody to know the LORD, since they would all know the LORD, from the least to the greatest. When Christ came and instituted the new covenant in His blood with the believing remnant of the nation of Israel, this began the time of preaching the new covenant message to both Israel and the Gentile nations. Two thousand years later, the new covenant remains incomplete since we are still preaching that message.
The writer to the Hebrews saw this very process occurring, leading to the day when the new covenant would be complete. So he quoted the entire passage from Jeremiah 31:31-34, knowing that his contemporaries plainly understood that people were still teaching others saying "Know the LORD" making this prophecy in Jeremiah only partially fulfilled. He then stated that "what is becoming obsolete and growing old is ready to vanish away." His description shows that he saw the new covenant's implementation as in progress. He didn't say it had vanished away, but he had faith that is ready to vanish away. We should still possess that same faith that it is ready to vanish away because the nation of Israel will completely know the LORD someday in the not too distant future.
This is how the Apostle Paul spoke of the new covenant as well. In II Corinthians 3, Paul speaks of the old covenant arrangement as "being brought to an end" (vs. 7 & 11) due to the ongoing new covenant ministry. Able ministers of the new covenant now possess the Holy Spirit which gives us life and surpasses the glory of the old covenant (vs. 6 & 10). But Israelites still have a hardened heart when reading the old covenant scriptures, therefore this implementation of the new covenant remains in progress, (vs. 13-15).
Even though Christ has shed His blood, there remains a future fulfillment of the new covenant if we take Jeremiah 31:31-34 at face value. Indeed, there comes a time when no one in the nation of Israel will have to teach any of their countrymen to know the LORD because they will all know Him. This is what is meant by Paul's notation that "all Israel will be saved," Romans 11:26-27.


Signaling downstream of RAS is subject to many levels of regulation. Inhibiting MEK seems to re-wire that regulation so that inhibitors of RAF kinases are more effective against cells driven by mutant KRAS.
Mutated RAS genes are an important cause of colorectal cancers, and play a role in resistance to current drug therapies. Remarkably, patients whose cancer is progressing despite treatment often have multiple different RAS mutations in their tumors.
Cancers driven by mutant KRAS are difficult to treat. Combining genetic screens with drugs that work downstream of mutant KRAS reveals cellular adaptations to uncontrolled growth that may be targeted.
Immunotherapy is becoming part of the "standard of care" for many cancer patients. Elizabeth Jaffee describes how we got here and where we need to go in the future.
Data are persuasive that RAS proteins are dimeric in living cells, but monomeric in vitro. Pasi Jänne, Chiara Ambrogio, and Frank McCormick discuss the significance of understanding RAS dimers for finding treatments for RAS cancers.


It's autumn in Sweden. Well actually, today we are going into Winter Time, setting our clocks back an hour to get more lights in the mornings… But where I am we haven't had any snow yet, so I'm enjoying the autumn still, as best I can.
I do not like how early it gets dark outside, or the winds howling all day today, but on when the sun comes out and you smell wet grass and see schrooms popping up here and there, it's lovely. I enjoy the change of seasons, and try to find time for a few photo walks as the season changes. Here are some photos from a previous, less windy, day.
Also on my list of things to share: I got a wonderfully big box of random papers recently, and I have already started using it in my journals. So yummy!
It is one of my blog readers who bestowed this pile of paper to me. She sent an e-mail and asked if I could use some of her paper stash as she was moving, and downsizing.
And as you might guess, I said yes. I have a hard time saying no to any art material, papers, stickers or ephemera of any sort. So she sent me this RAK, a whole shoe box of yummy papers. Here are just a few of my favorites.
Among magazine clippings, strange labels saved and big sheets of hand made paper I found a sheet of pink elephant stickers.
Finding them totally through me back in time, to when I was a kid and bought small sheets of stickers from a roll in the local office supply and book store. It was one of my places then too, and then they had a whole corner of sticker rolls, some with velvet stickers exactly like these. Flash back indeed. I haven't thought about (or remembered) those stickers in years.
Happy Autumn and following Winter-Saving-Time to you guys, if you have it too where you are?
This entry was posted in Photography and tagged autumn, memory lane, RAK, seasons, stickers, sweden. Bookmark the permalink.
OOOh, such lovely photos!! We've set our time here in Norway, too. And this morning we were met with snow and it is still snowing in Trondheim. Wishing you a great day!
Thank you for sharing your gorgeous autumn and new yummy paper stash photos! So much fun! I'm counting down the days until Christmas, my favorite time of year! We have Daylight Savings Time in America, too, but we won't change our clocks until next weekend. (When we lived in Okinawa, there was no DST, so we never had to remember to change our clocks. We didn't miss it, but that was our opinion.) Wishing you a truly happy winter season!!
Lovely pictures and have fun with your papers :) !
I'm reading this in the depths of winter in Alberta, Canada, with about two feet of snow on the ground but I had to say that I love those little mushrooms you posted! They're magical!


text:
[![Build Status](https://travis-ci.org/elidoran/had.svg?branch=master)](https://travis-ci.org/elidoran/had)
[![Dependency Status](https://gemnasium.com/elidoran/had.png)](https://gemnasium.com/elidoran/had)
[![npm version](https://badge.fury.io/js/had.svg)](http://badge.fury.io/js/had)

Results generator tool for returning objects which contain either a success
result or an error result.

It's possible to use this for every function return result. However, I think it's most appropriate at boundaries.

For example, when returning a result from a library's public API. The boundary is where values leave a library's control. It may also be helpful in important or significant functions. There are plenty of "little functions" to simply return the straight value.

However, if this was used everywhere, the insight and control of return results would be considerable. It can build up a history of return results which allows an insight into an error which was passed up multiple times.

Also, the information about an error is much more specific when it's used to specify exactly what's going on in the code at the place the error result is generated. It can say which array variable, which index, what it is trying to do with it, and more.

The main thing to keep in mind is this means a function will always return an object. That object is an error if it has an `error` property. Otherwise, it's a success result, and may have a `value` property containing the success result value.

For more explanation, read [Why had?](#why-had)

Note, v0.7.0 includes significant changes due to a rewrite.

## Quick Start

### Install

    npm install had --save

### Require + Create

```javascript
var had = require('had')({ id:'name your had' })

// OR:
var buildHad = require('had')
  , had = buildHad({ id: 'name your had' })
```

### Return success or error

```javascript
// provide the object you want stored in the `error` property
// of the error result object.
// if you don't provide one then `'unknown'` will be used.
return had.error({
  message:'invalid user',
  type:'auth',
  username:'someone',
})

// provide the object you want stored in the `value` property
// of the success result object.
// if you don't provide one then no `value` property
// is set on the result object.
return had.success({
  username:'someone',               // optional value
  token:'kJFO2fs8gvhhhg2o34uh9g7f', // optional value
})
```

### Use success or error result

```javascript
// receive a result from a function which provides
// `had` result objects.
var result = someCall()

// test if it is a successful result or an error.
// NOTE: do this yourself by check for `error` property.
if (had.isSuccess(result)) {
  // success, so, use `result.value`
} else {
  // return the error result, but,
  // wrap it with our had.
  return had.error(result)
  // or, provide our own error info about
  // receiving this error here.
  // NOTE: we provide the error result we just
  // received first so it is part of the error
  // result we return as a `previous` result.
  return had.error(result, {
    our:'error', info:'for', right:'here'
  })
}

// OR:
// check for error property:
if (result.error) {
  // return the error result instead of wrapping
  // it with your own had.error() call.
  return result
} else {
  // no error, so, use `result.value`
}

console.log('I have: ', result.value.something)
```

# Table of Contents

1. [Install](#install)
2. [Basic Use](#basic-use)
    1. [Require](#require) and create `had`
    2. [Success](#success) result example
    3. [Error](#error) result example
    4. [Null Argument Check](#null-argument-check)
    5. [Null Property Check](#null-property-check)
    6. [Result check](#result-check)
    7. [Combo](#combo)
3. [Advanced Use](#advanced-use)
    1. [Had Result ?](#had-result-)
    1. [Include Other Results](#include-other-results)
4. [What's in a Result Object](#whats-in-a-result-object)
    1. [Single Success Result](#single-success-result)
    2. [Single Error Result](#single-error-result)
    3. [Multiple Success Results](#multiple-success-results)
    4. [Multiple Error Results](#multiple-error-results)
    5. [Some Mixed Results](#some-mixed-results)
4. [API](#api)
    1. [had.success(value)](#hadsuccessvalue)
    2. [had.error(value)](#haderrorvalue)
    3. [had.results(options)](#hadresultsoptions)
    4. [had.addSuccess(value)](#hadaddsuccessvalue)
    5. [had.addError(value)](#hadadderrorvalue)
    6. [had.nullArg(argName, arg)](#hadnullargargname-arg)
    7. [had.nullProp(key, object)](#hadnullpropskey-object)
    8. [had.isSuccess(result)](#hadissuccessresult)
5. [Why had?](#why-had)
6. [Future Plans](#future-plans)
    1. [Register Handlers](#register-handlers)
7. [MIT License](LICENSE)

## Basic Use

### Require

Require `had` and call its function with options to create an instance.

```javascript
var had = require('had')({ id:'name your had' })

// OR:
var buildHad = require('had')
  , had = buildHad({ id: 'name your had' })
```

### Success

[Back to: Table of Contents](#table-of-contents)

See [had.success(value)](#hadsuccessvalue) for full example.

```javascript
function add(num1, num2) {
  return had.success({ sum: num1 + num2 })
}

var result = add(11, 22)

console.log('sum = ', result.value.sum)
```

### Error

[Back to: Table of Contents](#table-of-contents)

See [had.error(value)](#haderrorvalue) for full example.

```javascript
function work(info) {
  return had.error({
    message:'invalid value', type:'validation', value:'offending value'
  })
}

var result = work(someInfo)

console.log('bad value: ', result.error)
```

### Null argument check

[Back to: Table of Contents](#table-of-contents)

See [had.nullArg(options)](#hadnullargoptions) for full example.

```javascript
if (had.nullArg('info', info))
  return had.results() // already contains the error info
```

### Null property check

[Back to: Table of Contents](#table-of-contents)

See [had.nullProp(options)](#hadnullpropoptions) for full example.

```javascript
var object = {
  some: 'thing',
  another: null
}

if (had.nullProp('some', object)) {
  // would already contain the error info
  return had.results()
}

// returns true when property:
//   1. doesn't exist
//   2. is null
//   3. is undefined
if (had.nullProp('another', object)) {
  // would already contain the error info.
  return had.results()
}

// NOTE:
//  because it builds up results it's possible to run
//  nullProp() and nullArg() multiple times and
//  then return had.results() which will contain all the
//  error results.
```

### Result check

[Back to: Table of Contents](#table-of-contents)

See [had.isSuccess(result)](#hadissuccessresult) for full example.

```javascript
var result = someCall()

if ( ! had.isSuccess(result))
  return had.error(result)
// else it has your success result, use them

// OR:
if (result.error) {
  // handle the error or pass it up via return
} else {
  // use the success result value
}
```

### Combo

[Back to: Table of Contents](#table-of-contents)

Above sections are simple "this is how to call it" examples. Below is a more complete example using all of the "basic usage" functions.

```javascript
var had = require('had')({ id:'sum' })

function valid(num) {
  var type

  type = typeof num

  if (had.nullArg('num', num)) {
    // returns the null arg error result
    return had.result()
  } else if (type != 'number') {
    return had.error({
      // allows adding extra info such as the type of error: typeof
      // what the value was and what its typeof value is.
      // this can be used to inform error handlers and provide
      // specifics to error logging.
      message:'number required', type:'typeof', is:type, value:num
    })
  } else {
    // return a simple success result (empty, no value)
    return had.success()
  }
}

function add(num1, num2) {
  var sum
    , result

  result = valid(num1)

  if (result.error) {
    // include error result and our added info
    return had.error(result, { message:'invalid num1' })
  }

  result = valid(num2)

  if (result.error) {
    // include error result and our added info
    return had.error(result, { message:'invalid num2' })
  }

  sum = num1 + num2

  return had.success({ sum: sum })
}

var result = add(123, 'abc')
// this is what the result is like.
// contains both errors.
result = {
  had: 'sum',
  error: {
    message: 'invalid num2'
  },
  previous: [
    {
      had: 'sum'
      error: {
        message: 'number required',
        type   : 'typeof',
        is     :'string',
        value  : 'abc',
      }
    }
  ]
}

if (had.isSuccess(result)) {
  console.log('sum =', result.value.sum)
} else {
  // handle the `result.error` info
}

result = add(11, 22)
// this is the success result:
result = {
  had: 'sum',
  value: {
    sum: 33
  },
  previous: null
}

if (result.error) {
  // handle error result
} else {
  console.log('sum = ', result.value.sum)
}
```

## Advanced Use

### Had Result ?

[Back to: Table of Contents](#table-of-contents)

Check a result to see if it was provided by a `had` instance?

I haven't implemented this specifically because I haven't seen a use for it yet.

Instead, what I do is check for a falsey value, or `had` error, and return an error including the result.

```javascript
// receive a result from something using had
var result = someCall()

// check if it's a success result
if ( ! had.isSuccess(result)) {
  // when it's not, include it in the error result.
  return had.error(result)
}
```

See [had.isSuccess(result)](#hadissuccessresult)

See directly below for explanation of how the result is included.

### Include other results

[Back to: Table of Contents](#table-of-contents)

You may combine a `had` result you received from elsewhere into your own results.
See [Had Result ?](#had-result-) about testing if an object is a `had` result.
(also shown directly above this section.)

```javascript
var result = someCall()

return had.error(result, {
  message:'something failed', type:'fail'
})
// (bad examples)
```

That's it. If it's a `had` result it will be included in your error result.

**Note:** When it's instead a falsey value (false, null, undefined, empty string) then only
the error info you provide is used to create your error.

## What's in a Result Object

### Single Success Result

[Back to: Table of Contents](#table-of-contents)

```javascript
var had = require('had')({ id:'success' })
  , result

// it's okay to call success() w/out a value.
result = had.success()
// it looks like this:
result = {
  had: 'success',
  previous: null
}

// or, provide anything you want for the value
result = had.success({
  key1:'value1', key2:'value2'
})
// looks like this:
result = {
  had: 'success',
  value: {
    key1:'value1', key2:'value2'
  },
  previous: null
}
```

### Single Error Result

[Back to: Table of Contents](#table-of-contents)

```javascript
var had = require('had')({ id:'error' })
  , result = had.error({
    message:'something bad'
  })

// it looks like this:
result = {
  had: 'error',
  error: {
    message:'something bad',
  },
  previous: null
}
```

### Multiple Results

#### Multiple Success Results

[Back to: Table of Contents](#table-of-contents)

When a second result is added it becomes the current return result and stores the previous result.

This pattern continues with each subsequent result added until the result is finally pulled out for a return.

How to pull out all stored return results:

1. `had.results()` - uses the most recent result as the main return result and all others are in an array set into property `previous`.
2. `had.error()` and `had.success()` - they will gather all results and return them. These accept a single result to use for the most recent result, and, they can accept two arguments with the first one a "had result" from another call to include as well.

It doesn't matter whether results are success or error results. The most recent result is what's returned to `result` and the previous results are in an array set into `previous` property on the result.

```javascript
var had = require('had')({ id:'multi' })
  , result

// this stores a success result into the `had`
had.addSuccess({ some:'thing', first:true })

// this creates a new success result and puts the previous one
// into `previous` property in an array.
result = had.success({ something:'else', second:true })
result = { // contents of result
  had: 'multi',
  value: {
    something:'else', second:true
  },
  previous: [
    // array order is first element is the *oldest* result
    // second most recent result is last in the array
    // (most recent is the one set into `result` above)
    {
      had: 'multi',
      value: {
        some:'thing', first:true
      }
      // no previous property on results in the `previous` array.
    },
  ],
}
```

#### Multiple Error Results

[Back to: Table of Contents](#table-of-contents)

```javascript
var had = require('had')({ id:'multi' })
  , result

had.addError({
  message:'unexpected disconnect',
  type:'network',
  id:737526355
})

result = had.error({
  message:'reconnect denied',
  type:'network',
  reason:'invalid token'
})
result = { // contents of result
  had: 'multi',
  error: {
    message:'reconnect denied',
    type :'network',
    reason:'invalid token',
  },
  previous: [
    {
      message:'unexpected disconnect',
      type :'network',
      id:737526355,
    },
  ],
}
```

#### Some mixed results:

[Back to: Table of Contents](#table-of-contents)

```javascript
var had = require('had')({ id:'mixed' })
  , result

had.addError({ message:'someError', type:'theType', input:123 })
had.addSuccess({ some:'thing' })
had.addError({ message:'someError', type:'theType', input:456 })
had.addSuccess({ something:'else' })
// use had.results() to get current results.
// or,use had.success() instead of had.addSuccess() above.
var results = had.results()
results = {
  // the last result, a success
  had: 'mixed',
  value: {
    something: 'else'
  },
  previous: [
    { // the first result, an error
      had: 'mixed',
      error: {
        message:'someError', type:'theType', input:123,
      }
    },
    { // the second result, a success
      had: 'mixed',
      value: {
        some:'thing'
      }
    },
    { // the third result, an error
      had: 'mixed',
      error: {
        message:'someError', type:'theType', input:456,
      }
    },
  ],
}
```

## API
[Back to: Table of Contents](#table-of-contents)

### **had.success(value)**
[Back to: Table of Contents](#table-of-contents)

Does:

1. creates new success result with `value`. See [Success Results](#success-results)
2. if previous results exist, they are included in an array in the `previous` property. See [Multiple Results](#multiple-results)
3. clears the `had` so it's ready for new results
4. returns the results

```javascript
var had = require('had')({ id:'success' })
  , result = had.success({
    key1:'value1', key2:'value2'
  })

result = { // contents of result are:
  had: 'success',
  value: {
    key1: 'value1',
    key2: 'value2',
  },
  // previous results would be in an array here.
  // ordered oldest to newest
  previous: null
}
```

##### Note

Two arguments are used when including another result into this one. When both arguments are provided it is assumed the first one is the result to include, and the second is your success value. When the first argument is a simple (non-had) value then it isn't used.

```javascript
result = someCall()
// if result is a "had result" then it is included as a
// previous result and then the second argument is used
// to make the main return result.
had.success(result, { some:'thing' })
```

### **had.error(value)**

[Back to: Table of Contents](#table-of-contents)

Does:

1. creates new error result from error. See [Error Results](#error-results)
2. if previous results exist, they are included in an array in the `previous` property. See [Multiple Results](#multiple-results)
3. clears the `had` so it's ready for new results
4. returns the results

```javascript
var had = require('had')({ id:'error' })
  , result = had.error({
    message:'null', type:'param', name:'someParam'
  })
result = { // contents of result are:
  had: 'error',
  error: {
    message:'null',
    type: 'param',
    name: 'someParam',
  },
  // previous results would be in an array here.
  // ordered oldest to newest
  previous: null
}
```

##### Note

Two arguments are used when including another result into this one. When both arguments are provided it is assumed the first one is the result to include, and the second is your error. When the first argument is a simple (non-had) value then it isn't used.

```javascript
result = someCall()
// if result is a "had result" then it is included as a
// previous result and then the second argument is used
// to make the main return result.
had.error(result, { message:'error' })
```

### **had.results(options)**

[Back to: Table of Contents](#table-of-contents)

Return the results stored in `had`.

Does:

1. clears the `had` so it's ready for new results
2. returns the results
3. if there are no results then it returns `{ had: 'its id' }`
4. I didn't have a use for the `options` argument so it's currently copying its properties into the result object so it's possible to override the result info.

```javascript
var had = require('had')({ id:'results' })
  , result = had.addError({
    message:'null', type:'param', name:'someParam'
  })

// result = true, it was added
// now call results() to get that object
result = had.results()
result = { // contents of result are:
  had: 'results',
  error: {
    message: 'null',
    type: 'param',
    name: 'someParam',
  },
  previous: null
}
```

### **had.addSuccess(value)**

[Back to: Table of Contents](#table-of-contents)

Stores a Success result from value and does **not** return the results. The info is held until one of these are called:

1. [had.results(options)](#hadresultsoptions)
2. [had.error(value)](#haderrorvalue)
3. [had.success(value)](#hadsuccessvalue)

Does:

1. creates new error result from value. See [Error Results](#error-results)
2. if previous results exist, they are included in an array in the `previous` property. See [Multiple Results](#multiple-results)

```javascript
var had = require('had')({ id:'add' })
  , result

had.addSuccess({
  file: 'someFile', note:'file already existed',
})

result = had.success({
  file:'anotherFile', note:'file created'
})
result = { // contents of results are:
  had: 'add',
  value: {
    file:'anotherFile', note:'file created',
  },
  previous: [
    {
      had: 'add',
      value: {
        file:'someFile', note:'file already existed',
      },
    },
  ],
}
```

### **had.addError(value)**

[Back to: Table of Contents](#table-of-contents)

Stores an Error result from options and does **not** return the results. The info is held until one of these calls:

1. [had.results(options)](#hadresultsoptions)
2. [had.error(value)](#haderrorvalue)
3. [had.success(value)](#hadsuccessvalue)

Does:

1. creates new error result from value. See [Error Results](#error-results)
2. if previous results exist, they are included in an array in the `previous` property. See [Multiple Results](#multiple-results)

```javascript
var had = require('had')({ id:'add' })
  , result

had.addError({
  message:'path is a directory',
  type:'fs',
  file:'fileName'
})

result = had.error({
  message:'delete file failed',
  type:'fs',
  file:'fileName',
})
result = { // contents of result are:
  had: 'add'
  error: {
    message:'delete file failed',
    type:'fs',
    file:'fileName',
  },
  previous: [
    {
      had: 'add',
      error: {
        message:'path is a directory'
        type:'fs',
        file:'fileName',
      },
    }
  ]
}
```

### **had.nullArg(argName, arg)**

[Back to: Table of Contents](#table-of-contents)

Returns true if `arg` is null or undefined; false otherwise.

```javascript
var had = require('had')({ id:'arg' })
  , someArg = 1234
  , result

if (had.nullArg('someArg', someArg)) {
  // result = false, so the if won't run
}

someArg = null
if (had.nullArg('someArg', someArg)) {
  // it is null so this if does run.
  // what the results() looks like right now:
  result = had.results()
  result = { // contents of results are:
    had: 'arg',
    error: {
      message: 'null',
      type: 'arg',
      name: 'someArg',
    },
    previous: null,
  }
}
```

### **had.nullProps(key, object)**

[Back to: Table of Contents](#table-of-contents)

Returns true if the `object` is null or undefined, or, if the `key` in `object` is null or undefined; false otherwise.

```javascript
var had = require('had')({ id:'prop' })
  , object1 = { some: 'thing' }
  , object2 = { some: null }
  , object3 = null

if (had.nullProp('some', object1)) {
  // result = false, so the if won't run
}

if (had.nullProp('some', object2)) {
  // it is null so this if does run.
  // what the results() looks like right now:
  result = had.results()
  result = { // contents of results are:
    had: 'prop',
    error: {
      message: 'null',
      type: 'prop',
      name: 'some',
      // NOTE:
      // no `object` property cuz
      // the object wasn't null, the prop was.
    },
    previous: null,
  }
}

if (had.nullProp('some', object3)) {
  // the object itself is null
  // so, this if will run.
  // what the results() looks like right now:
  result = had.results()
  result = { // contents of results are:
    had: 'prop',
    error: {
      message: 'null',
      type: 'prop',
      name: 'some',
      // NOTE:
      //   this means the object itself was null.
      object: true,
    },
    previous: null,
  }
}
```

### **had.isSuccess(result)**

[Back to: Table of Contents](#table-of-contents)

Returns true when `result` is a `had` success result with no error property or when a truthy value; otherwise, false.

```javascript
// any value, might be a `had` result, might not
var result = someWork()

// if not a truthy or a `had` success result
if ( ! had.isSuccess(result)) {
  // return an error containing other result
  had.error(result)
}
```

## Why had?

[Back to: Table of Contents](#table-of-contents)

I've had enough of throwing errors when a common problem occurs and
writing try-catch statements to handle errors thrown by other's. They are often
poorly descriptive of the issue. In JavaScript they are often swallowed by some
layer of an application. And, try-catch blocks aren't optimized by V8.

Avoid throwing/catching errors by always returning a result object. Put errors into the `error` property and put success values into `value` property. Then, test for error by checking if the `error` property exists.

Then, when errors occur, they can returned using `had` to format them. Then we're using normal flow control with no *throw* involved; no exception. All the code using `had` for its results should check if there's an error and do something different when there is.

This causes:

1. the programmer may provide helpful error information into an error object instead of throwing an Error with a general message. This aids in debugging, of course. It also encourages the programmer to spend time really thinking about what's happening and what information someone else will want to know about the error at that point in the source code.

2. the programmer calling the code can know ahead of time what *detailed* information they'll receive when an error is returned. No testing strings in Error messages.

3. develop a standard error property usage pattern, such as a `type`, and corresponding info, then, you can write reusable error handling tools which make writing error handling simpler.

4. no stepping outside the normal program flow to fly up through layers until a try-catch is encountered. That has use for errors representing system failures which must bail up to a handler. All those other errors? Let's manage them directly. Instead, require the caller directly above the error occurrence to inspect the return results, discover the error, and respond. We can include a lot of information rarely included in thrown errors. It's possible to still pass-the-buck up by returning received error results directly or by including it in a new call to `had.error()` to add your error info on top of the previous one. Then, the receiver above gets both results.

5. changes the perception from always expecting return results to be a success value to expecting the return result to either have the success value in `result.value` or an error in `result.error`.

## Future Plans

[Back to: Table of Contents](#table-of-contents)

There are more checks I could add, such as one which helps test arrays.

The current API primarily expects synchronous usage. It's possible to generate the results and pass them to a callback instead of returning them. In which case, the callbacks would need to shift from expecting two args like `(error, success)` to expecting a single arg containing the result like `(result)`.

Then, instead of doing:

```javascript
function callback(error, result) {
  if (error) {
    // handle the error
    return
  }

  // handle the `result`
}
```

We'd have callbacks like:

```javascript
function callback(result) {
  if (result.error) {
    // handle the error
    return
  }

  // handle the result: `result.value`
}
```

Although the above is possible I'm sure I could do more to support asynchronous code.

For example, provide an adaptor which wraps traditional callbacks to accept a had result object and then call the traditional callback with `(result.error, result.value)`.

### Register Handlers

[Back to: Table of Contents](#table-of-contents)

I have an idea to allow registering functions on a `had` which run for specific
`error` or `type` values. Could let the functions look at the object and decide
if they will do anything or not, or, use a strategy pattern to select them.

Then, if someone wanted to change a library to throw Errors instead, (hey, some
persons really like thrown errors), they can register a handler which does
exactly that.

Or, it could alter an error object, or log it, or report it to another tool, or
send info to a developer-mode tool, or grab extra info from a service, or
prevent the error from being used (maybe a library is sending something as an
error and the library user disagrees).

There are a lot of possibilities.

[Back to: Table of Contents](#table-of-contents)

## License

[MIT](LICENSE)


text:
Shin Sung-rok (born November 23, 1982) is a South Korean actor. He frequently appears in films and television series, but is better known an active in musical theatre.

Early life
Shin had initially aspired to become a basketball player together with his brother Je-rok, who is two years younger. Both brothers attended Whimoon High School, known as one of Seoul's top high school basketball programs. An injury prompted Shin to reconsider another career and he transferred to Anyang Arts High School. He majored in Theater and Film at the University of Suwon but subsequently dropped out after being cast in a play.

Career
Shin made his acting debut in 2003, but found it difficult to find acting jobs since directors were reluctant to cast the 189 centimeter-tall aspiring actor in supporting or minor roles. Thinking he would have a better chance if he gained more acting experience and honed his craft on the stage, Shin switched gears and joined the theater company Hakchon.

When Shin performed in his first musical Moskito, there were only 20-25 audience members in the 500-seat hall. Despite feeling depressed and frustrated, he said the experience made him strong and helped him become an actor with plenty of guts.

While doing the musical Dracula, Shin was cast in his first substantial onscreen role, in the risqué cable drama Hyena (2006). Supporting roles in dramas and films followed, notably in Thank You (2007) and My Life's Golden Years (also known as All About My Family, 2008). He also appeared on season 1 of the MBC dating reality show We Got Married as a "fake couple" with female comedian Kim Shin-young.

Mainstream breakthrough still eluded Shin, but in theater his star was rising. In 2007, Shin was picked from 400 auditionees for the lead role Solomon in Dancing Shadows, a musical adaptation of the realist play Forest Fire by celebrated Korean playwright Cha Beom-seok. He later received a Best New Actor nomination from the Korea Musical Awards.

As Shin starred in one hit musical after another, he continued to impress critics with his acting performances, his strong and powerful baritone vocals and his delicate and clear alto notes. He is now considered a top musical star, even drawing fans from outside Korea to his shows.

Definitely Neighbors (2010) further boosted his TV profile; for his role as a difficult chef who falls in love with an older divorcee, Shin won Best Supporting Actor in a Weekend/Daily Drama at the 2010 SBS Drama Awards. His most popular drama yet was the romantic comedy My Love from the Star (2013), in which he appeared as a villainous businessman. This was followed by supporting roles in the 2014 series Trot Lovers (as a talent agency CEO), Liar Game (as the host of a reality show), and The King's Face (as a face reader).

Despite branching out to film and television, Shin has maintained that his heart will always belong to the stage, and has stated, "I feel more affection toward the stage [rather than TV]. I think it is the stage where actors learn life and understand the meaning of acting. It is where I learned how to act and where I gained confidence. I think the core of my life will remain on the stage" (The Korea Herald, 2007). "The musical is like my old home and it made me what I am now, so I can't stop performing the musicals however busy I get" (The Korea Times, 2009)

In September 2021, Shin decided not to renew his contract with HB Entertainment. Later on September 27, 2021, Shin signed a contract with Screening ENT.

Personal life
Shin has a younger brother. Shin Jae-rok is a former professional basketball player who had short stints with Anyang KT&G Kites and Changwon LG Sakers before retiring. He became a chef and has since opened his own restaurant. Both of them appeared on July 30, 2015 KBS talk show Happy Together.

Shin began dating ballerina Kim Joo-won in 2011; Kim was a principal dancer with the Korea National Ballet for 15 years from 1988 to 2003, and currently teaches at Sungshin Women's University. The pair broke up after four years of dating in August 2015.

In June 2016 Shin married a non-celebrity office worker in Hawaii. In November the same year, Shin became a father to a daughter.

Filmography

Television series

Film

Television show

Theater

Awards and nominations

References

External links
 Shin Seong-rok at HB Entertainment
 Shin Sung-rok Fan Cafe at Daum

South Korean male film actors
South Korean male television actors
South Korean male musical theatre actors
South Korean male stage actors
1982 births
Living people
People from Seoul
Male actors from Seoul
21st-century South Korean male actors
South Korean baritones


text:
package com.pineone.icbms.so.servicemodel.pr;

import java.util.List;

/**
 * Created by melvin on 2016. 8. 23..
 * NOTE: 외부에 노출될 ServiceModel Data - Presentation, Controller 에서 사용
 */
public class ServiceModelTransFormObject {
    //
    private String id;
    private String name;
    private List<String> serviceIdList;
    private String createTime;
    private String modifiedTime;
    private String sessionId;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public List<String> getServiceIdList() {
        return serviceIdList;
    }

    public void setServiceIdList(List<String> serviceIdList) {
        this.serviceIdList = serviceIdList;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public String getModifiedTime() {
        return modifiedTime;
    }

    public void setModifiedTime(String modifiedTime) {
        this.modifiedTime = modifiedTime;
    }

    public String getSessionId() {
        return sessionId;
    }

    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }

    public ServiceModelTransFormObject() {
    }

    public ServiceModelTransFormObject(String id, String name, List<String> serviceIdList) {
        this.id = id;
        this.name = name;
        this.serviceIdList = serviceIdList;
    }

    public ServiceModelTransFormObject(String id, String name, List<String> serviceIdList, String createTime, String modifiedTime) {
        this.id = id;
        this.name = name;
        this.serviceIdList = serviceIdList;
        this.createTime = createTime;
        this.modifiedTime = modifiedTime;
    }

    public ServiceModelTransFormObject(String id, String name, List<String> serviceIdList, String createTime, String modifiedTime, String sessionId) {
        this.id = id;
        this.name = name;
        this.serviceIdList = serviceIdList;
        this.createTime = createTime;
        this.modifiedTime = modifiedTime;
        this.sessionId = sessionId;
    }

    @Override
    public String toString() {
        return "ServiceModelTransFormObject{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", serviceIdList=" + serviceIdList +
                ", createTime='" + createTime + '\'' +
                ", modifiedTime='" + modifiedTime + '\'' +
                ", sessionId='" + sessionId + '\'' +
                '}';
    }
}


Although many historians have condemned Alger Hiss as a Soviet spy, the facts of his story remain obscure.
This is an abridged version of remarks Victor Navasky delivered at the "Alger Hiss and History" conference at New York University on April 5, 2007. We have also published the full text of the speech.
This is the gazillionth "final" nail in Hiss's coffin, but no matter. Over the years the pendulum of the Hiss case has swung this way and that with only one certainty: This is a case that will not die. It will not go away. The cold war is over, but the symbolic cold war lives on. In early April New York University's Center for the United States and the Cold War sponsored a daylong conference on "Alger Hiss and History," and events before, during and, presumably, after the conference help explain why.
§ Kai Bird, the Pulitzer Prize-winning co-author of American Prometheus: The Triumph and Tragedy of J. Robert Oppenheimer, and Svetlana Chervonnaya, a Russian researcher, in a précis of a 17,000-word paper, "Who is ALES?" (soon to be published online in The American Scholar), argued that going by Venona, Hiss could not have been ALES because, among other reasons, Hiss was publicly and visibly in Washington when his US-based control had ALES in Mexico. The paper also argues that another person, Wilder Foote, an assistant to the Secretary of State, who, like Hiss, traveled from Yalta to Moscow and was in Mexico during the period in question, better fits the ALES profile.
§ Jeff Kisseloff, drawing on new research courtesy of FOIA, documented that Hede Massing, the only witness besides Chambers who testified that Hiss had been a member of the underground, at first omitted Hiss from her story, introducing him into her account only after Chambers produced the pumpkin film and publicly accused him of espionage. Her husband was under threat of deportation at the time, and she had lied in several previous interviews. Kisseloff makes the case that her testimony against Hiss was the result of FBI prompting.
If Bird and Chervonnaya are right, their finding complicates but does not resolve the case. If Hobson and Kisseloff are right, their new information goes to the heart of the case. Either way, to paraphrase the late Alistair Cooke (who wrote A Generation on Trial), not just Alger Hiss but all those historians who share what they like to call the consensus are on trial, for we live under a system of opinion trusteeship, and the rest of us rely on contemporary historians to get our news about the past.
The consensus historians have tended to focus on information that on its face is incriminatory (like Venona cable 1822) but have seemed to look the other way when it comes to evidence that on its face is exculpatory (like another Venona cable, which mentions Hiss by name, when in the world of Venona, spies are mentioned only by code name). Will the consensus historians study this new information and attempt to integrate it into their understanding of the case, or will they reflexively ignore and dismiss it? Check National Review and The Weekly Standard for early warning signals.


With the 2018/2019 season soon coming to a close, and the 2019/2020 season fast approaching, I am looking for individuals interested in Coaching or being part of the Bench Staff within the Tillsonburg Ringette Association!
Maybe you have coached in the past or it's something you have considered. Maybe you have kids in Ringette. Maybe you're still playing, or have played in the past, and would love to share the joy of the game with the next generation of players! If any of the above 'rings' true with you, then I would love to hear from you!!
Applications for 2019/2020 positions are online and waiting for you. If you have questions about any of the forms or processes, ore even questions about Coaching and Bench Staff requirements in general, feel free to contact me directly.
Player Registrations are due by the end of July, and we would like to have our coaching staff in place by that time. Please submit your application prior to July 15th, so that we can begin the review and interview process and have our applicants notified prior to close of player registration!