text:
Listen, Anarchist! (1970)
Book Review from the March 1970 issue of the Socialist Standard
One of the great crimes of Bolshevism has been to identify its own dictatorial state-capitalist policies with Marxism, thus unfairly discrediting the latter. Quite sincere people have been understandably repulsed by the arrogance, cynicism and dishonesty of the self-appointed Bolshevik "vanguards", and have reacted in various mistaken anti-Marxist ways — by losing interest in politics, becoming Social Democrats, moving to the "Right" or enrolling with the anarchists.
We repeat: this must be laid at the door of the Bolsheviks. This is the upshot of their "leadership" delusions, their "developing consciousness through struggle". That does not excuse the anarchists and others from all responsibility. They have drawn the wrong conclusions; with a little thought most of them are capable of drawing the right ones. For example, many of the anarchists who represent bolshevism (or even the present Russian regime) as the logical outcome of Marxism, are well-read enough to realise that they are thereby doing a disservice to the truth.
Curiously enough, though anarchists and Bolsheviks abuse each other heartily, they are agreed on the fundamental question. This basic agreement can be seen in their response if confronted with the Socialist case. When it is suggested that prior to the Socialist revolution the majority of workers must grasp what Socialism entails, both anarchist and Bolshevik reply in precisely the same manner: by ridiculing such an "academic" approach, by muttering about "sectarianism", in short, by claiming that ordinary workers are incapable of acquiring a clear understanding of Socialism before organising together to achieve it.
But since both, in a confused manner, want some sort of social change, and both see the working-class as vital to this process, it is necessary to maintain that workers possess some naive revolutionary desire. Therefore, in analysing the events of May 68 in France (for example) they need some explanation of why revolution didn't result, and find it in the French "Communist" Party.
Socialists, on the contrary, maintain (as a fact, and not because they like it) that the great majority of workers have no wish for Socialism nor understanding of it. Because of traditional ideas, most workers see Capitalism as the only practicable method of operating society. This applies to French workers, just as it does to workers in Britain, America, Russia or China. It is therefore pointless to seek for some special agency which "holds the workers back". The French CP is chiefly an expression of the workers' capitalist outlook, not the cause of it. Since Socialist understanding does not drop out of heaven like the holy ghost, in the space of a few hours, it was clear to every Socialist that the May events had no prospect whatsoever of turning into a revolution. The subsequent election proved this beyond question.
Both anarchists and Bolsheviks take the view that "goals emerge from struggle." If any form of "struggle" intensifies, they tend to welcome it as a sign of "rising consciousness" (though often the workers involved are clearly as conservative in their ideas as they were before). If "struggle" becomes very sharp, this is seen as a "revolutionary situation," and in such situations the actions of determined minorities are thought decisive. It is argued either that the workers really do want a revolution, but this desire is "inarticulate" (even "instinctive"!) Or else it is admitted that they have no such aim, but the claim is made that in certain circumstances they will be forced by necessity to adopt the revolutionary course.
These views are often defended with the statement that "people learn by experience," an utterance which demonstrates confusion. The great majority of ideas in anyone's head did not derive from their own personal experience, but from friends, workmates, school, the family, newspapers, TV etc. We all know that arsenic is poison; few of us learnt it by personal experience.
In fact, an item of experience does not lead of itself to a specific conclusion. If a group of people are subjected to a similar experience, they may draw a variety of conclusions about it: the decisive factor will be the system of ideas they have formed before the experience. If there is an economic slump with mass unemployment, Socialists will recognise this as a consequence of the anarchic capitalist market, Christians will conclude that lack of righteousness among the population has brought its inevitable retribution, common-or-garden reformists will believe that incompetence or utterly abnormal circumstances are responsible, fascists and Bolsheviks will put the blame on "finance capitalists," attack political democracy and demand better leadership. Most workers will probably decide that "their country" has been too soft on immigrants, long-haired layabouts, dole scroungers and red wreckers. These ideas will largely determine the way they act, especially the way they vote — and the rise of Hitler should have taught us the crucial importance of the way workers vote.
Naturally, experiences spark off changes in ideas, but until the possibility of Socialism, the moneyless world community, has become widely known and discussed, there is no hope for the emergence of mass Socialist understanding. When two explanatory systems compete in people's minds, then events may decide which is adopted. But given the present near-monopoly of capitalist ideas, it is impossible for the minds of millions to wake up to Socialism until there is a sizeable Socialist movement spelling out the arguments for social revolution.
Given their similar view of working-class ideas, both anarchists and Bolsheviks counterpose leadership plus formal organisation to leaderlessness plus "spontaneity." The Socialist proposal that ordinary working people can operate democratically without leaders, using a large, complex organisation to carry through the revolution, is beyond the comprehension of anarchists and Bolsheviks alike.
The writings reviewed here seem to make some effort to escape from the conventional anarchist standpoint, but this effort turns out to be little more than a gesture. Listen, Marxist! is the bravest try, consisting mostly of an attack on what the author imagines to be Marxism, which is really bolshevism. "Marxism", we are told, means soviet power, puritanical morality, workers' states, vanguards, leaders. We are informed that Marx thought of the Socialist revolution "almost entirely by analogy with the transition of feudalism to capitalism," that chronic economic crisis formed the focal point of his theories, that Marx predicted a continual reduction of workers' real wages, that he didn't foresee increasing state ownership, that he didn't include white-collar workers in the working-class, etc, etc. On this last point the author admits that Marx defined workers as people who had to sell their labour power— and then argues that he must have meant something different!
In view of all these elementary mistakes about what the writer is supposed to be attacking, it is tempting to dismiss this pamphlet as a tale told by an ignoramus, full of four-letter words, signifying nothing. This would be wrong however, for the author has come to a number of conclusions in line with the Socialist case, and in contradiction to the consensus of traditional anarchism. For example, he lays great stress on the potential plenty which now exists, and concedes that anarchism in the past was doomed to failure because it was rooted in scarcity. He admits that the Russian Revolution replaced Tsarism by state capitalism, a change from the usual anarchist line that Russia is Communist (which is supposed to show that Communism is the same as Capitalism). Further, he emphasises that what has been lacking in twentieth-century revolts until now, including the French May Events, has been sufficient consciousness among the population at large, (or as we would prefer to say, with our desire to avoid unnecessary jargon, sufficient understanding).
Of course, these arguments are precisely those of Marxism. We can only confront the followers of Anarchos and similar groups with the fact that most of the observations they announce with such pride as sensational novelties designed to show "that Marxism has ceased to be applicable to our time . . . because it is not visionary or revolutionary enough," are to be found in the pages of the SOCIALIST STANDARD for years (or decades) past. And without some of the confusions which appear in the Anarchos document.
Apart from numerous cloudy assertions ("Political institutions as such are decaying." The revolution will be made by a "non-class." etc.) we find here the specific dogma which underlies anarchist as well as Bolshevik activity: the incapacity of workers inside capitalism to understand Socialism. Thus, Anarchos tells us that "in a revolutionary situation, the revolutionary organisation presents the most advanced demands: it is prepared at every turn of events to formulate . . . the immediate task . . ." So for all the writer's talk about "consciousness," he does not envisage a united working-class which has democratically decided on its revolutionary strategy, but an entirely fluid situation with competing groups advocating different demands: it is he who falls into the trap of seeing the Socialist revolution by analogy with capitalist revolutions.
"For the first time in history, the anarchic phase that opened all the great revolutions of the past can be preserved as a permanent condition by the advanced technology of our time." But this "anarchic phase" and its apparent alternative, vanguardism, really mutually condition each other: where workers have not advanced to the Socialist stage of leaderless democratically-disciplined organisation, their choice is naturally between leaders, who will stamp on them, and foredoomed, futile "spontaneity."
The group called Solidarity do not use the words "anarchist" or "anarcho-syndicalist" to describe themselves, but the gist of their case is the same. Since they are reacting against Bolshevism (nearly all their pamphlets read as though penned with a Trotskyist peering over the writer's shoulder) they have undoubtedly made some advances in understanding, and on a number of issues have come round to views pioneered by us. But they remain entangled in outdated Leftist ideas. Their fundamental flaw is an obsession with "workers management" as a solution to working-class problems. They fail to appreciate that in terms of genuine human freedom, how work is managed is a side issue. The important thing is that all work should be entirely voluntary—a condition demanded by Marx's slogan "Abolition of the wages system!" "Workers management" is in no way incompatible with Capitalist exploitation.
Cardan begins The Fate of Marxism by listing some of the bewildering variety of so-called "Marxisms," all mutually contradictory. He bemoans the fact that Marxism "has become impossible to pin down. For with which Marxism should we deal?" An obvious first step would seem to be to look at what Marx had to say, but Cardan evades this by a curious line of argument. (He has already given ample evidence that he hasn't read Marx. See the SOCIALIST STANDARD, February 69) He claims that "the significance of a theory cannot be grasped independently of the historical and social practice which it inspires and initiates." In other words, Marxism must be held responsible for everything done in its name—which opens up truly fabulous possibilities. In a similar manner, Darwin could be refuted by Desmond Morris, or Mendel by Hitler.
Like everyone else, Marx made mistakes, and so has the Socialist Party. But Cardan cannot stomach this approach:
"It is no longer possible to maintain or to rediscover some kind of 'Marxist orthodoxy'. It can't be done in the ludicrous (and ludicrously linked) way in which the task is attempted by the high priests of Stalinism and by the sectarian hermits, who see a Marxist doctrine which they presume intact, but 'amend,' 'improve,' or 'bring up to date' on this or that specific point, at their convenience."
According to Cardan then, it is wrong to stick to a theory, and equally wrong to amend it. We must admit to accepting some of Marx's ideas — a heinous crime, certainly. And rejecting some of Marx's ideas? Oh dear yes, we plead guilty to that fiendish trick as well!
Revolutionary Organisation declares: "Whilst rejecting the substitutionism of both reformism and Bolshevism, we also reject the essentially propagandist approach of organisations such as the Socialist Party of Great Britain." Solidarity is of course equally as concerned with propaganda as we are, but its propaganda consists overwhelmingly of reports of strikes and other activities, whereas ours consists of posing an alternative form of society and explaining how it can be achieved.
The "learning by experience" clap-trap predominates here: Solidarity apparently seriously believes the "people in struggle do draw conclusions which are fundamentally socialist in content." Not that they occasionally do, nor that they might do, but that they do. Obviously if this were the case we should have got Socialism long ago.
In this vein, the pamphlet stresses that workers in conflict with management "counterpose their own conceptions and ideas of how production should be organised." Often they do—but these conceptions and ideas are equally capitalist in character. The number of workers who understand the need for doing away with production for sale, remains very tiny.
If we are to appreciate how the revolution in ideas (a necessary precondition of the social revolution) will occur, we must first rid ourselves of the simplistic fallacy that people change their minds only when they burn their fingers.
David Ramsay Steele
Posted by Imposs1904 at 8:51 PM 1 comment:
Labels: Anarchists, Bolshevism, Book Review, David Ramsay Steele, March 1970, Murray Bookchin, Paul Cardan, R1970, Solidarity Group, Spontaneity Links to this post


text:
Q: help needed to publish android app in market I have made a application in android with map view and I want to publish it on market.
So first of all how to export final APK from eclipse and second Google map API key for release
Please, help me.

A: For creating the apk file.
Right click on your project->Export

Select the Android->Export Android Application

then next

In this wizard by default you get your project name which you have selected then next

in this keystore you have to create your keystore as first time then select Create new keystore and set the path like this way or you can browse it by click on browse button
path e.g. D:\app\myapp\my_release.keystore

set the password here with confirm password then next.

Set the Alias name here
Set the password and confirm password (this is different from the previous one but)
Set the year and other details
then click next
here set the path for your apk file
for e.g. D:\app\myapp\my_app.apk

now your apk file was created but you have set the map api key with this newly created keystore for mobile device.
obtain your map key using this keystore like this way
c:\java\...\bin Keytool –list -alias youraliasname –keystore D:\app\myapp\my_release.keystore -storepass yourpassword -keypass youraliaspassword then enter

now sign up and obtain map key from google site with this certificate fingerprint and change the api key in your xml file (Note this api key will work only of the mobile as you generate for your emulator you have to also keep save as backup).
now again regenerate the apk file as above step. But this time you have to select existing keystore

A: Release: right click on the project, go to the android tools, choose the option that reads something like "export signed package". For the key, sign up for one. It really boils down to that. But the complete manual/helps are online, and easy to find.
I wonder where you're stuck, but just read these topics:
Signing Your Applications
Versioning Your Applications
Preparing to Publish
Publishing on Android Market
(I've linked the first, the rest are on the left hand side of that first link).
For the google maps API you'll get far enough using this link i presume

redpajama_set_name: RedPajamaStackExchange


text:
Share a story idea here (link opens in a new window)
Sowmya Suryanarayanan
Powering the BoP: Micro-grid payment and metering solutions offer promise in India
Editor's note: This post originally appeared as the second of a two-part post on the Sankalp Forum Blog. Part I highlighted the need for decentralized energy solutions, and various products and services offered by private enterprises to meet the energy needs of rural poor households.
Commercial micro-grid enterprises with solutions to provide reliable power supply are gradually building trust among low-income consumers. And mechanisms to enhance payment and collection are a big component of this effort.
Mera Gao Power (MGP), which operates in off-grid villages in Uttar Pradesh, charges INR 100 per month for infrastructure maintenance and services. Consumers pre-pay on a monthly basis, and have the flexibility to subscribe and unsubscribe when required. Additionally, they can now replace sooty kerosene-fueled lamps with clean, smokeless and reliable energy for the same price. MGP's staff collects payments on a prefixed date each month. The solar micro-grid is linked to computers that monitor energy use and can cut off power to households automatically if excess electricity is drawn.
Another enterprise that leverages computer technology for its micro-grid is Gram Power, which provides smart solutions in remote villages in Rajasthan. With a pay-as-you-go model, the enterprise uses smart metering technology and allows consumers to purchase power in a prepaid mode. Gram Power's smart micro-grid also minimizes power theft and payment defaults.
DESI Power follows a community approach to ensure payments are made promptly by households in the village. They arrive at electricity rates (about INR 10-15 per kilowatt hour) after consultations with the community. Over time, DESI Power has realized that consistency in power supply and its impact on people's incomes is directly linked to revenue collection in villages. This, they feel, eliminates the need for a prepaid metering system. Aklavya Sharan, executive director of DESI Power notes, "Villagers don't often have money to recharge or pay for the electricity, but they do require power to run irrigation pumps – and if there is no power supply, then the company ends up losing customers."
Challenges to Breaking Barriers through Technology
India is considered to be the third largest market for smart meter technology after the United States and China. The government believes India will need to install at least 100 million new meters that will provide more control over electricity usage. For micro-grid enterprises seeking to keep costs low, installing meters in villages would further add to input costs. Moreover, in low and variable income settings, enterprises using a prepaid metering system run the risk of customers falling short of money to recharge for electricity. Thus, these enterprises can neither predict power usage nor secure customers for a length of time, adversely impacting revenues. Having said this, the long term payoff of using smart meters in ensuring greater power supply efficiency is significant.
"Hiring the right staff for monthly collection of payments is another challenge," says MGP's co-founder Nikhil Jaisinghani. For enterprises operating on low margins, even a slight increase in cost impacts viability; hence collection agents must collect payments from a majority of the households in one trip and avoid multiple trips. A 2013 study by New Ventures India on micro-grids in Uttar Pradesh and Bihar highlights challenges that Minda's collection agents face:
"In one month, the family would have spent all its disposable income on a wedding and in another month the man of the house may simply not be at home. After a few months, when the debts have accumulated, the customer requests a discount. Once the discount is given, the lower figure becomes the norm."
However, DESI Power has witnessed a change in people's attitude. "This change hasn't happened overnight, and required close interaction with the community," Sharan says. It takes time to enhance village capacity – and once jobs and income levels have improved, people are automatically convinced to pay for electricity. To increase the efficiency of micro-grids, DESI Power will be piloting a "Power System Management Module" in Bihar that will not only monitor, but also control electricity generation and distribution, and identify power thefts.
Clean energy micro-grid enterprises are likely to move towards the mainstream power generation and distribution industry in India, with substantial investments and advancement in technology. In order to achieve this, they will increasingly rely on enabling technologies for electricity metering, measuring and billing. While significant successes in the intersection of technology and micro-grids could take years, the key is to understand the scope of success of micro-grid projects and the context of their failure in order to ensure that current efforts of entrepreneurs are sustained in the long term.
Sowmya Suryanarayanan is a part of Intellecap's Research Team and passionately follows the renewable energy space.
Energy, Environment
Monday January 30, 2023Six Business Plan Pitfalls to Avoid When Approaching Funders: Lessons from Healthcare Enterprises in Emerging Markets
Wednesday January 25, 2023How Foreign Aid Can Innovate Itself Out of Existence: Exploring the Potential of Market-Creating Innovation for Sustainable Development
Monday January 23, 2023Lessons in Resilience: What an Impact Investor Learned from an Entrepreneur Who Refused to Give Up
News View More news
Thursday January 26, 2023Philippine Agri-Fisheries Startup Mayani Nets $1.7 Million in AgFunder-Led Round
Thursday January 26, 2023Larry Fink Says BlackRock Inflows Are 100x Anti-ESG Outflows Despite Political Backlash
Thursday January 26, 2023Press Release: Tameo Report Shows 17% Growth in Private Impact Fund Sector
Thursday January 26, 2023GoodVision Ltd Raises €2.7 Million to Make Traffic Flow and Cities Ready for Future Mobility Challenges
Calendar View More calendar
Tuesday January 31, 2023The Importance of Data Ownership in 2023
Thursday February 2, 202320 Years of Research, Data, and Analytics on Poverty, Inequality and Human Capital
Select Year 2023 (8) 2022 (109) 2021 (147) 2020 (230) 2019 (237) 2018 (253) 2017 (298) 2016 (301) 2015 (415) 2014 (546) 2013 (557) 2012 (418) 2011 (512) 2010 (402) 2009 (305) 2008 (401) 2007 (363) 2006 (355) 2005 (163)

redpajama_set_name: RedPajamaCommonCrawl


Zixi announced its collaboration with broadcast industry leaders to deliver proof-of-concept for Over-the-Top (OTT) distribution of live events broadcast in 4K. Elemental Technologies (booth SU2724), RED Digital Cinema (booth SL1517), and BrightSign partnered with Zixi (booth SU10802) to enable end-to-end 4K distribution over IP to deliver 4K content from any live venue to virtually any destination.
OTT is utilized by a growing number of low-cost service providers to deliver video content directly to viewers, creating the direct relationship with viewers that's becoming commonplace as on-demand viewing continues to displace traditional broadcast distribution.
Zixi also announced that Adtec Digital is embedding Zixi Feeder, and Zixi Receiver into their EN series encoders and decoders enabling broadcast quality video delivery over IP using Zixi-LinkTM.
This entry was posted on Thursday, April 9th, 2015 at 11:44 am	and is filed under News Roundup. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


We offer sizes from small to very large as well as custom sizes and frames.
Installations of small to large naturally preserved or a mix of living/preserved green wall art, designed with real plants. Custom sizes and requests are welcome.
Mrs. Cote designed a piece for my office. I own an environmental consulting firm so it was important to me to have something that reflected my love of nature. Artisan Moss was able to capture that in this piece. I receive compliments on the piece every time a client visits my office. It's so original and beautiful, it is a great ice breaker. I am very happy with my piece and I intend to expand my collection very soon!
I have purchased several small Artisan Moss pieces from Erin for use in my office and gifts to friends and family. They are something really special and bring the beauty of the outdoors to the inside. There's an ease of maintenance because I don't have to water or find a place with direct sunlight! This is the best piece of mixed-use art I've ever seen. And every piece is originally made so no piece is a duplicate. Erin even took the time out to return my phone call about a special request for a friend of mine. She's awesome and the art is awesome too!


text:
var _typesystem = undefined;

if (typeof requirejs == "undefined") {
  global.window = global;

  var define = function(deps, cb) {
    for (var i=0; i<deps.length; i++) {
      deps[i] = require(deps[i]);
    }

    var module = cb.apply(undefined, deps);
    for (var k in module) {
      exports[k] = module[k];
    }
  }
}

define([
  './polyfill'
], function(_polyfill) {
  'use strict';

  var exports = _typesystem = {};

  function ClassGetter(func) {
    this.func = func;
  }
  function ClassSetter(func) {
    this.func = func;
  }

  var prototype_idgen = 1;
  var defined_classes = exports.defined_classes = [];

  var StaticMethod = function StaticMethod(func) {
    this.func = func;
  };

  var SymbolMethod = function SymbolMethod(func) {
    this.func = func;
  };

  var OverlayMethod = function OverlayMethod(func) {
    this.func = func;
  };

  var handle_statics = function(cls, parent) {
    for (var k in cls.prototype) {
      if (cls.prototype[k] instanceof StaticMethod) {
        var func = cls.prototype[k];

        delete cls.prototype[k];
        cls[k] = func.func;
      }
    }

    if (parent != undefined) {
      for (var k in parent) {
        var v = parent[k];

        //only inherit static methods added to parent with this module
        if (v == undefined || (typeof v != "number" && "_is_static_method" in v)
            && !(k in cls))
        {
          cls[k] = v;
        }
      }
    }
  }

  var init_prototype = exports.init_prototype = function init_prototype(cls, proto) {
    for (var k in proto) {
      cls.prototype[k] = proto[k];
    }

    cls.prototype.__prototypeid__ = prototype_idgen++;
    cls[Symbol.keystr] = function() {
      return this.prototype.__prototypeid__;
    }

    cls.__parent__ = parent;
    cls.__statics__ = [];

    handle_statics(cls, undefined);

    return cls.prototype;
  }

  var inherit = exports.inherit = function inherit(cls, parent, proto) {
    cls.prototype = Object.create(parent.prototype);
    init_prototype(cls, proto);

    return cls.prototype;
  }

  var Class = exports.Class = function Class() {
    if (arguments.length == 3) {
      var name = arguments[0], parent = arguments[1],
                 methods = arguments[2];
    } else if (arguments.length == 2) {
      if (typeof arguments[0] == "string") {
        var name = arguments[0], parent = undefined,
                   methods = arguments[1];
      } else {
        var name = "unnamed", parent = arguments[0],
                   methods = arguments[1];
      }
    } else {
      var name = "unnamed", parent = undefined,
                 methods = arguments[0];
    }

    var construct = undefined;
    var ownmethods = {}

    for (var i=0; i<methods.length; i++) {
      var f = methods[i];

      if (f.name == "constructor") {
        construct = f;
        methods.remove(f);
        break;
      }
    }

    if (construct == undefined) {
      console.trace("Warning, constructor was not defined", methods);

      if (parent != undefined) {
        construct = function() {
          parent.apply(this, arguments);
        }
      } else {
        construct = function() {
        }
      }
    }

    var func = undefined, construct1 = construct;

    var code = "func = function " + name + "() {\n"
    code += "  construct1.apply(this, arguments);\n"
    code += "}\n";

    eval(code);
    construct = func;

    if (parent != undefined) {
      construct.prototype = Object.create(parent.prototype);
    }

    construct.prototype.constructor = construct;
    construct.prototype.__prototypeid__ = prototype_idgen++;
    construct[Symbol.keystr] = function() {
      return this.prototype.__prototypeid__;
    }

    construct.__parent__ = parent;
    construct.__statics__ = [];

    var getters = {};
    var setters = {};
    var getset = {};

    var statics = {}

    //handle getters/setters
    for (var i=0; i<methods.length; i++) {
      var f = methods[i];

      if (f instanceof ClassSetter) {
        setters[f.func.name] = f.func;
        getset[f.func.name] = 1;
      } else if (f instanceof ClassGetter) {
        getters[f.func.name] = f.func;
        getset[f.func.name] = 1;
      } else if (f instanceof StaticMethod) {
        statics[f.func.name] = f.func;
      }
    }

    for (var k in statics) {
      construct[k] = statics[k];
    }

    for (var k in getset) {
      var def = {
        enumerable   : false,
        configurable : true,
        get : getters[k],
        set : setters[k]
      }

      Object.defineProperty(construct.prototype, k, def);
    }

    handle_statics(construct, parent);

    if (parent != undefined)
      construct.__parent__ = parent;

    construct.__aspects__ = {};

    for (var i=0; i<methods.length; i++) {
      var f = methods[i];

      if (f instanceof ClassGetter || f instanceof ClassSetter)
        continue;

      var name = f.name;

      if (f instanceof OverlayMethod) {
        construct.__aspects__[f.func.name] = f;
        continue;
      }

      if (f instanceof SymbolMethod) {
        name = f.func.name;

        if (!(name in Symbol)) {
          console.log(f)
          throw new Error("Invalid symbol " + name);
        }

        name = Symbol[name];
        f = f.func;
      }

      ownmethods[name] = f;
      construct.prototype[name] = f;
    }

    function bind_aspect(aspect, method) {
      var f2 = aspect.func;
      var a = [];

      function layer() {
        a.length = arguments.length + 1;

        for (var i=0; i<arguments.length; i++) {
          a[i+1] = arguments[i];
        }

        a[0] = method;

        f2.apply(this, a);
      }

      return layer;
    }

    //walk up parent, dealing with overlayers (aspects)
    var p = parent;
    while (p != undefined) {
      for (var k in p.__aspects__) {
        if (!(k in construct.prototype)) {
          continue;
        }

        var aspect = p.__aspects__[k];
        construct.prototype[k] = bind_aspect(aspect, construct.prototype[k]);
      }

      p = p.__parent__;
    }

    return construct;
  };

  Class.getter = Class.get = function(func) {
    return new ClassGetter(func);
  }
  Class.setter = Class.set = function(func) {
    return new ClassSetter(func);
  }

  var static_method = exports.static_method = function static_method(func) {
    func._is_static_method = true;
    return new StaticMethod(func);
  }

  Class.static = Class.static_method = function(func) {
    func._is_static_method = true;
    return new StaticMethod(func);
  };

  Class.symbol = function(func) {
    return new SymbolMethod(func);
  };

  //aspect-oriented programming.
  //allows parent to selectively override child behavior
  Class.overlay = function(func) {
    return new OverlayMethod(func);
  };

  var mixin = exports.mixin = function mixin(cls, parent) {
    for (var k in parent.prototype) {
      if (!(k in cls.prototype)) {
        cls.prototype[k] = parent.prototype[k];
      }
    }
  };

  var test_overlay = exports.test_overlay = function test_overlay() {
    var idgen = 0;

    var A = Class("A", [
      function constructor() {
        this.id = idgen++;
      },

      Class.overlay(function exec(underlying, arga, argb, argc) {
        console.log(this);
        console.log("A", arga, argb, argc, this.id);
        underlying.call(this, arga, argb, argc);
      })
    ]);

    var B = Class("B", A, [
      function constructor() {
        A.call(this);
        this.id = idgen++;
      },

      Class.overlay(function exec(underlying, arga, argb, argc) {
        console.log("B", arga, argb, argc, this.id);
        underlying.call(this, arga, argb, argc);
      })
    ]);

    var C = Class("C", B, [
      function constructor() {
        B.call(this);
        this.id = idgen++;
      },

      function exec(arga, argb, argc) {
        console.log("C", arga, argb, argc, this.id);
      }
    ]);

    var c = new C();
    c.exec(1, 2, 3);
  }

  //test_overlay();

  return exports;
});

redpajama_set_name: RedPajamaGithub


We would like to invite you to support the ETRA 2014 Symposium by becoming a sponsor and exhibitor. This is an ideal way to demonstrate your commitment to the field of eye tracking and promote its further development. Because ETRA has established itself as the premiere international conference devoted to eye tracking technology and applications, it is also an important vehicle to publicize your support to many leaders and students in the field from all over the world.
Corporate support is basically used to benefit students by reducing their fees, allow complimentary registration to volunteer students, and sponsor ETRA's keynote speakers. Your support is very important to ETRA, and we want to ensure you that your contribution is well recognized. ETRA 2014 offers three corporate support packages: Gold, Silver, and Bronze. New for this conference, is that the exhibition will be open throughout the conference.


Please note: The Fitness Training Poster Chart Images within these pages have been reduced down to a low quality to enable faster page loading. The actual Fitness Posters supplied will be of very high Clarity and Quality and Encapsulated in plastic for durability.
Ideally, we recommend that you frame your Exercise Training Posters for that finishing touch prior to hanging. We do not recommend using pins for fixing your poster charts to the wall, as they will damage the coated encapsulation finish.


The Government of Grenada views with concern and dismisses as total falsehood, a blogpost by convicted criminal-turned-financial-analyst, one Kenneth Rijock, in which he alleges that Henley & Partners — one of several approved marketing agents of Grenada's Citizenship By Investment (CBI) programme — took money from someone with a promise to secure a diplomatic passport from Grenada for that person.
The Government of Grenada, through the Office of the Prime Minister, under whose auspices lies the CBI programme, categorically refutes any knowledge of this allegation or activity. This blogpost by Rijock is bogus in its entirety.
Further, the Government of Grenada through its CBI programme has no knowledge of such a claim levelled against Henley & Partners, outside of this blogpost.
The article infers that the agents involved in this scheme are Henley & Partners. We note that Henley & Partners have since released a statement categorically denying all aspects of this report and hinting at legal action against Rijock.
It is important to note that the source of the report is also an American so-called financier, who has been charged and convicted, spending time in Federal Prison for money laundering. He also has numerous other complaints levelled against him for libel, including a recent lawsuit against him by the Government of Dominica for making similar claims against that country's Citizenship By Investment Programme.
Rijock has no credibility in regional and international financial circles, and from his blogpost, it is also clear that he has no knowledge of Grenada's Citizenship By Investment Programme, and its laws and operations.
The Government of Grenada reaffirms its commitment to protecting the integrity of Grenada's CBI programme, which has been lauded internationally, and most recently by the International Monetary Fund, for being the 'Gold Standard for transparency and having a sound legislative framework' among all regional CBI programmes.


text:
Who has the Fastest Drive-Thru? Hint - It Ain't Chick-fil-A
A new study reveals the fastest drive-thrus in America and the very good reason why Chik-fil-A isn't the fastest.
Signs on Bertrand Not a Protest; They Just Want to Pray With You
Though it's a local church, many of the people who were holding signs aren't from Acadiana, as they have traveled from Central Florida, Alabama, and East Texas.
Banking Drive-Thru: Do You Wait or Pick a Lane?
Each lane has one vehicle in it. Do you stand back and wait until one is available? Or do you pick a lane and pull behind one of the vehicles in line already?
McDonald's First Drive-Thru Was Made for Soldiers - Not Civilians
It's hard to think that drive-thru's weren't always a thing. One man changed the game when he wanted the soldiers in his town to say, "I'm lovin' it!"
Prejean's Restaurant in Carencro Opening Drive-Thru Today
Fans of the Acadiana landmark restaurant will be able to enjoy a limited menu through Prejean's new drive-thru window beginning today.
Jude Walker
Your Favorite Fast Food Drive-Thru May Actually Be the Slowest
In a world that expects instant gratification this could be bad news.
Woman Arrested, Accused Of Pouring Booze Down Drive-Thru Worker's
An Oregon woman is facing a DUI charge after police say she poured Hennessy into the mouth of a Taco Bell drive-thru worker.
Ian Auzenne
Fast Food Chains Want to Track Your License Plate Number
Yes, that will be a No. 4 without onions and a large side of NO, THANK YOU.


We have reviewed many apps in the past from different category but we didn't touch on how you can make money from your android mobile. This time we will do it.
Prime Cash is app we are talking about since the app will help you to earn some hard cash by completing app download, surveys etc.
Some of you may have heard or used application like this and didn't earned a single penny. But this one we are talking is different!
They do offer support for the users of this application and you can verify this from the comment section in the store, also they are rated 4.4 in the store by users!
Note : don't try to use VPN when it's running your account will get deleted without any notice, so take care.
Scrolling problem sometimes forces it to shut down!
We have used application like this in the past but Prime Cash is the only one we have received payment in PayPal.
Why is PayPal So Widely Used in the Online Casino industry?


10:45 am - 11:00 am Fellowship time w/coffee, etc.
Betty Henderson, Lucille Covert & family, Bible Studies and After School Club.
*New Daily Bread Devotional book available on the foyer table.
*A great Internet site for Christian growth - www.crosswalk.com.
Jack & Charlotte Runner, New address: PO Box 132, Harlowton, MT 59036.
Our cell phone will remain the same- 853-1931.
This is your invitation to attend.


barry (Administrator) 05-17-2011 at 02:02 AM.
Scroll through this thread for ideas and inspiration on housing and covering your SL-18.
barry (Administrator) 05-17-2011 at 02:05 AM.
"Just thought I'd send a picture of my finished amp. Well pleased I bought it. The 2x12 is for just ease of transport and to not look to big to the Mrs in my lounge. I used two greenbacks with two jack sockets so I can have 1x12 8-ohms or the 2x12 at 16-ohms."
barry (Administrator) 05-17-2011 at 02:06 AM.
When Andy built his PP-36 amp, he called it the Maztone Chief, so it seems quite right that his SL-18 amp is called the Maztone Brave. This amp is housed in one of Chris' 1x12 combo cabinets, and Andy's opted for cream chickenhead knobs (soon to be available at Amp Maker).
"My next project build hopefully will be an SL-18 kit (with octal variations) into the 3x9 2x8 chassis."
The SL-18 ships with chickenhead knobs as standard - cost effective and easy to read at a distance - but Knut's one of a number of customers who prefer Marshall-style knobs for that classic 'plexi look'.
"I finished the build on Wednesday evening, and what a great sound. It was my first build and it will not be the last, my next kit will most likely be the WF-55."
barry (Administrator) 05-17-2011 at 02:07 AM.
The 'EighteenW' logo plate is a nice touch on Jonas' amps, and he's also opted for Marshall-style knobs. He's built both the PP-18 and SL-18. "The cabinet (inspired by the Marshall smallbox) was built by myself using MDF from the local shop and tolex etc mostly from Tube Amp Doctor. I also designed the logo (using the early '60s Marshall block logo as inspiration) and ordered it from http://skyltmax.se/ (in Swedish, sorry). I am planning to make one more similar cabinet, but with black tolex."
barry (Administrator) 05-17-2011 at 02:19 AM.
Here's a very distinctive "Blood and Custard" finish. "Speaker is an Eminence 300watt that came in second hand for £25, trying to find a 15" 25watt speaker proved fruitless. It sounds huge - very different from a 12 or 10 but suits my slide and lap steel down to the ground. No cone break-up but I won't burn it out either and it's very efficient.
"A Gothic-script name plate with "Blood & Custard" on gold might well be fitted where the Selmer amps name was fitted; the speaker used is just one that was offered. The original Selmer Selector-tone Automatic had either a Jensen or Goodmans at that time; the phrase 'hens teeth' comes to mind here."
Chris kindly got a few of his students to record a few clips (see attachments, below).
barry (Administrator) 05-17-2011 at 02:37 AM.
George very kindly uploaded a great video clip of his SL-18 build to YouTube. It's especially useful as I haven't had a chance to record any SL-18 clips myself yet!
"My band, Los Reyez, were recently asked to do a track for the record company Time to be Proud's annual Cramps tribute CD. I was going for a trashy, garage sound which I think the SL-18 did pretty well. It's a Danelectro mostly with some Les Paul for the 'solos'."
barry (Administrator) 05-17-2011 at 02:46 AM.
Every now and then an amp build squeals. Craig's SL-18 was one such amp and after checking his photos it was clear why: what amp builders call 'lead dress.' In several areas, the wires were unnecessarily long, and allowed the preamp to pick up the signal from a later part of the power amp circuit.
"Thanks for the great information as usual. Unfortunately I got buried in work for a month - you know what that's like - but eventually I managed to take your advice and shorten the unnecessarily long wires and can tell you that it has improved things hugely. I can run everything flat out now when I'm playing something that needs it - brilliant!"
Very kindly, Craig suggested that I post the photo to show future SL-18 amp builders how not to do it.
barry (Administrator) 06-12-2011 at 05:57 AM.
"I received my SL-18 kit way back in the first week of November last year, and due to several delays, I only finally completed it yesterday evening!! I have to point out though, that this also including building a pine head and cab, tolexing them, and fitting a speaker etc!
"Anyway, the timescale is irrelevant because I have had such a fantastic time building my own amp! Your kit, components, paperwork and step-by-step guides were what made the whole process so wonderfully enjoyable, relatively simple and all-in-all a superbly satisfying experience."
Appreciate the kind words, Graham, and thanks for sending in the photos.
barry (Administrator) 06-12-2011 at 06:53 AM.
Garry Fairway's 'Nora Batty' tribute amp!
"The white knobs are to help me find the Volume and Gain; the Triumph badge comes from my old Spitfire and the Stig sticker came from a birthday cake. The speaker is new; I fancied a greenback, but this one is slightly more bassier which I prefer. The fascia is made from an offcut from sign making material; the lettering is lettraset (remember that?). The mysterious white circles on the sides are simply cut outs for carrying purposes ( although could also be for cooling). Makes stairs easier! When I come accross some black piping I'll replace the white.
* "A set of guitar tone controls installed before the amp's input with a rotary selection switch of choice of a 500pf cap as inline filter (gives a thin sound), or a selection of conventional tone caps coupled with a Fender no-loss tone pot.
* "The warm section, which is a capacitor in parallel (with the 1uF cathode bypass capacitor on V1). I've put 3 different values of cap in via a rotary switch."


text:
Борис Фёдорович Будников (, Саратов, СССР) — советский яхтсмен, серебряный призёр Олимпийских игр. Заслуженный мастер спорта СССР. Участник трёх Олимпийских игр.

На летних Олимпийских играх 1972 был девятым в классе «Звёздный» вместе со шкотовым Владимиром Васильевым (1935—2003).

На летних Олимпийских играх 1980 вместе с братом Александром и Николаем Поляковым выиграл «серебро» в классе «Солинг», а на Олимпиаде 1976 года был четвёртым со шкотовыми  (1939—1987) и Николаем Поляковым.

Окончил ГЦОЛИФК по специальности тренер-преподаватель. До 1992 года работал старшим тренером Сборной СССР по килевым классам.

В 2008 году стал чемпионом России в классе Дракон в команде со шкотовыми  (Дания) и Сергеем Джиенбаевым.

Примечания

Ссылки

 Поздравляем Будникова Бориса Федоровича с юбилеем!
 «Календарь финниста 2011—2012», статья «Пять кругосветок Бориса Будникова», с.48-54, 2011

Яхтсмены СССР
Яхтсмены на летних Олимпийских играх 1972 года
Яхтсмены на летних Олимпийских играх 1976 года
Яхтсмены на летних Олимпийских играх 1980 года
Серебряные призёры летних Олимпийских игр 1980 года
Заслуженные мастера спорта СССР

redpajama_set_name: RedPajamaWikipedia


We love the stunning floral embroidery details and balloon sleeves on our playful Wildflower Shirt. A classic design with a fun twist. Wear this shirt with our Prairie Pants or Cassidy Skirt, it will also look great worn underneath our Kentucky Tunic too!


Once upon a time in Wales.
Our PE is on a Monday, please can all children come to school wearing jogging bottoms and trainers (no laces if possible.) All clothes need to be clearly labelled with your child's name.
Thank you for you support in decorating the milk bottle shakers, we loved your creations and we're having lots of fun using them for Music Rhyme Time!
1 five little ducks rhyme sheet.
1 five little ducks activity sheet.
There will be a new rhyme of the week for the next 5 weeks, please could you fill in the yellow feedback slip on the bottom of the rhyme sheet each week and return it in the yellow plastic wallet every Friday. Your child will then receive a new rhyme sheet to go home with on a Friday for the following week.
Our Trip to Cyfartha Castle!
The children enjoyed a very exciting trip this week to Cyfartha castle. The trip included a trail around the inside of the castle looking for scrolls in different rooms. Each scroll contained a different fairy tale including Cinderella, Goldilocks and Sleeping Beauty. The children had to complete tasks in each room which included matching, sorting, counting, finding sets of 3 objects and playing musical instruments! Within each room of the castle the children had to find gold coins which we exchanged for some beautiful jewels so they could make royal crowns!


text:
Q: How would I create a text editor in Java that allows me to annotate text? I am working on a project that contains a feature in a JEditorPane or similar that allows for the highlighting of certain areas of text and adding "annotations" for that text. These annotations would be similar to a comment. I would also try to include tooltips that show the actual text of the annotation
Example:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
I would highlight the first set of text "consectetur adipisicing elit," add an annotation which would let me set a highlight color and add a tooltip with a comment. The same would happen with "ullamco laboris nisi ut aliquip" except that the color and comment would be different.
The editor should be able to display these multiple highlightings.
Can anyone point me in the right direction? Is there any library I can use to accomplish this easier?
Thanks,
David

A: For any JTextComponent (JTextField, JTextPane, JEditorPane etc) you can use setHighLighter() and add highlights to it to indicate the text spans where your annotations belong. You can change the colour using different HighlightPainter objects.
You could also set the tooltip text according to whether the mouse is over a highlight (annotation) by over-riding getToolTipText() and using viewToModel() to determine where in the text the mouse is pointing.


text:
Q: Find function in React.JS I am receiving a props data is look like
 data: [
    {
        rowNumber: 1,
        specification: null,
        validationMessage: [
            {
                isExists: true,
                errors: [
                    {
                        errorCode: "PredicateValidator",
                        errorMessage: "ERR: Length value is not in correct  "
                    },
                    {
                        errorCode: "PredicateValidator",
                        errorMessage: "Height Unit is not in correct  "
                    },
                ]
            }
        ]
    },
    {
        rowNumber: 2,
        specification: null,
        validationMessage: [
            {
                isExists: false,
                errors: []
            }
        ]
    },
]

In my render I have a button and I am trying to disable/ enable that button based on my errorMessage. If my eoorMessage contains a word "ERR:" I will disable the button otherwise it will be enabled.
Note: My errorMessage may be empty or may or may not have the word "Err:" word. If "ERR:" word exist any of my errorMessage I have to disable the button
I have tried this but it says x is not defined. How can I overcome this?
render() {

 const hasError = this.props.data ? this.props.data.find((x) => x.validationMessage.erros.find(z => z.errorMessage.indexof("ERR:"))) : ''
    return (

        {(this.props.data) ?

                (hasError) ?
                <Button variant="contained" className={classes.button} onClick={this.handleSave}>Continue</Button>
                :
                <Button variant="contained" disabled={true} className={classes.button} onClick={this.handleSave}>Continue</Button>

<Button variant="contained" className={classes.button} onClick={this.handleCancle}> Cancel</Button>

                : ''}

    );

A: There are three problems in you code.

*

*You are using indexOf() which will return -1 if no element is found and its a trucy value. You should use includes()

*You are using find() on x.validationMessage.erros. First add the missing r in erros. Secondly. You need to use x.validationMessage[0].errors because validationMessage is an array.

*You are using find() on data which will return first occurrence if you want all disabled button you should use filter() otherwise find() is fine.

You question is bit unclear to me. I assumed to want to get all the items in which there is "ERR:".
If you want to check that if any of them contain err or not use .some()

let data = [
    {
        rowNumber: 1,
        specification: null,
        validationMessage: [
            {
                isExists: true,
                errors: [
                    {
                        errorCode: "PredicateValidator",
                        errorMessage: "ERR: Length value is not in correct  "
                    },
                    {
                        errorCode: "PredicateValidator",
                        errorMessage: "Height Unit is not in correct  "
                    },
                ]
            }
        ]
    },
    {
        rowNumber: 2,
        specification: null,
        validationMessage: [
            {
                isExists: false,
                errors: []
            }
        ]
    },
]

let newarr = data.filter(x=>x.validationMessage[0].errors.find(a=>a.errorMessage.includes('ERR:')))

let isError = data.some(x=>x.validationMessage[0].errors.find(a=>a.errorMessage.includes('ERR:')))

console.log(isError)

console.log(newarr)

A: Firstly, you need to fix the typo error like validationMessage.erros and .indexof.
Base on you data, `` should be validationMessage.errors, and .indexof should be .indexOf.
Secondly, you need to understand the indexOf. While your data errorMessage: "ERR: ... the expression z.errorMessage.indexOf("ERR:")) will return 0 which is evaluated to false in boolean.
To Fix this, you need to update it to z.errorMessage.indexOf("ERR:") >=0 so that the hasError variable shall be:

const hasError = this.props.data ? this.props.data.find((x) => x.validationMessage.erros.find(z => z.errorMessage.indexof("ERR:") >= 0 )) : ''


text:
Eric Freeman (born July 13, 1965) is an American actor best known for his role as Ricky Chapman in the 1987 slasher film Silent Night, Deadly Night Part 2.

Early life
Eric Freeman was born on July 13, 1965, in Raleigh, North Carolina.

Career
Freeman is best known for his role in the 1987 slasher film, Silent Night, Deadly Night Part 2. Released three years after the original, Freeman portrays Ricky Caldwell, the younger brother of the first film's killer Billy Chapman, who begins his own murder spree; it was his first lead role. Director and writer Lee Harry "offered [Freeman] very little in the form of direction", and his co-writer Joseph Earle encouraged the actor's over-the-top performance. Silent Night, Deadly Night Part 2 was commercially unsuccessful upon release and criticized for presenting footage of the original film as flashbacks for nearly half of its runtime. In the years since its release, the film was considered unintentionally comedic and a cult classic among horror fans. Freeman's outlandish performance, particularly his delivery of the line "garbage day", became the subject of an internet meme.

Other works
After Silent Night, Deadly Night Part 2, Freeman made appearances in various television shows including: a notable guest appearance on the TV show Superboy, playing the character Peter in the episode "The Woman Called Tiger Eye", appearances on several episodes of In Living Color, and his last being in the 1992 television series Dangerous Curves as "Johnny Strong" in the episode titled "Muscle Boys".

In 2004, the directors of Silent Night Deadly Night Part 2 tried to find him for the commentary track of the DVD release, but they were unable to track him down. In 2013 he returned to the public eye when he attended a screening of Silent Night, Deadly Night Part 2 in December 2013. He stated during an introduction speech that he had no idea that people were still interested in his roles and were looking for him until by chance someone he met mentioned to him that there were websites dedicated to finding him.

References

External links

1965 births
American male film actors
Living people
Male actors from North Carolina
Actors from Raleigh, North Carolina


It is with heavy hearth to report the death of Pa Edmond K. Baio, in Mesquite Dallas Texas. This sad event happened on Saturday, June 7th 2014.
Pa Edmond K.Baio is survived by his wife Madam Hawa Baio, Sons and daughters in the United States of America are Joe Pokawa, Mrs. Fredica Kiawu, Mrs.Mary Gamanga and Michael Baio.
More updated information will follow soon.


text:
Chondrina oligodonta é uma espécie de gastrópode  da família Chondrinidae.

É endémica de Itália.

Os seus habitats naturais são: áreas rochosas.

Está ameaçada por perda de habitat.

Referências
  Seddon, M.B. 2000. Chondrina oligodonta. 2006 IUCN Red List of Threatened Species. Dados de 6 de Agosto de 2007.

Fauna da Itália
Chondrina
Animais descritos em 1879


text:
Mcdonald's Is Bringing Back Classic Toys For 40th-Anniversary Of Happy Meal
By Mane Terez On 2 November 2019
It's been forty-years since McDonald's introduced their staple, the Happy Meal, and to celebrate, the fast-food chain is bringing back some of their most popular toys from over the years. According to USA Today, from Nov. 7 to the 11th, McDonald's Surprise Happy Meal will be available across the globe; however, there is a catch. The deal will be a "while supplies last" limited run.
"Since the Happy Meal was introduced on the menu, it quickly became synonymous with our brand," McDonald's CEO Steve Easterbrook said in a statement. "Today, this iconic red box creates lasting memories for billions of families annually across the world."
"Parents tell us how fondly they recall their favorite toys," said Colin Mitchell, McDonald's senior vice president of global marketing. "So, unboxing the Surprise Happy Meal together creates a real moment of bonding with their children. We hope these toys are something that they will treasure and remember."
There will be a number of interesting toys returning such as Space Jam Bugs Bunny from 1996, My Little Pony from 1998, and the Hamburglar from 1995. In total, there will be fifteen toys from the last forty years that can be found during the limited run. Check out the full list below.
Cowboy McNugget (McDonald's): 1988
Fireman McNugget (McDonald's): 1988
Mail Carrier McNugget (McDonald's): 1988
Hamburger Changeable (McDonald's): 1989
Grimace (McDonald's): 1990
Dino Happy Meal Box Changeable (McDonald's): 1991
McDonald's Hot Wheels Thunderbird (Mattel): 1993
Hamburglar (McDonald's): 1995
Power Rangers (Hasbro): 1995
Space Jam Bugs Bunny (Warner Bros.): 1996
Patti the Platypus (Ty Beanie Baby): 1997
101 Dalmatians – U.S. Exclusive (Disney): 1997
Tamagotchi (Bandai): 1998
My Little Pony (Hasbro): 1998
Furby (Hasbro): 1999
Sorcerer's Apprentice Mickey – U.S. Exclusive (Disney): 2002
Hello Kitty (Sanrio): 2013
DaBaby Reveals Which Female Rapper He Wants to Record an Album With: Watch
Kristaps Porzingis Says He Has "Nothing But Love" For NY: Knicks Fans React
ICYMI: Retired C.O Accused Of Leaking R. Kelly's Business To Blogger
Post Malone Is Being Credited By Fans For The Discovery Of Ozzy Osbourne


text:
Q: Unable to use logger for task I have a situation where there is a synchronous call to a method and based on a parameter we switch the response for sync /async and inside async we start a task as below. The problem is tracer works until its outside the Task() but not inside. Is it happening that Task cannot access the parent thread data ?
RequestProcessor.cs file code:
public classA_Res GetListbyUserRequest(ApiRequest<object> request)
{
    if(request.IsAsync)
    {
        LocalTracer.TraceInformation(AVEventType.Info, "Async call started"); // this works/ gets logged in db
        var taskProcessEventsResponseAsync = new Task(() =>
            ProcessResponseAsync(validatedInputs, options, grids, userInfo, traceRequest, exportAs, userRequestId, sessionId));
        taskProcessEventsResponseAsync.Start();
    }
    else
    {
        response=DataManager.Instance.GetListbyUserRequest(); // this gets paginated data for UI
    }
    //some code for response that request has been put down for export async.
}

private void ProcessResponseAsync(validatedInputs, options, grids, userInfo, traceRequest, exportAs, userRequestId, sessionId)
{
    LocalTracer.TraceInformation(AVEventType.Info, "Async call in progress"); // this doesnt works/ doesnt gets logged in db but also doesnt throws any error

    //some code for processing data in chunks and creating files on server
}

LocalTracer.cs
public interface ILocalTracer
{
    void TraceInformation(AVEventType eventType, DummyParameter dummy = null);
}

public sealed class LocalTracer:ILocalTracer
{
   static ILocalTracer _instance = new LocalTracer();

    public static ILocalTracer Instance
    {
        get { return _instance; }
        set { _instance = value; }
    }

    private LocalTracer()
    {

    }

    public static void TraceInformation(AVEventType eventType, string sMessage = "", string
    userName = "", string ipAddress = "",.....)
    {
        //tracer code
    }
    public void TraceInformation(AVEventType eventType, DummyParameter dummy = null)
    {
        TraceInformation(eventType, "");
    }
}

Please assume all this code in proper try catch blocks.


GoGuardian Fleet lets you export all of your device repair data in the form of a CSV file. You can export either all of your device repair data at once, or use a combination of searches and filters to export specific selections of device repair data.
What can I do with the exported device repair data?
Click on the Repairs tab in GoGuardian Fleet.
If you want to export all of your device repair data at once, skip to step 3. Otherwise, use a combination of the Status & Typedropdown filters and the Search bar to narrow down your selection. When the data you want to export is shown, go to step 3.
When the Export Repairs window appears, click on Download CSV.


text:
// Copyright 2015-2018 The NATS Authors
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

using System;
using System.Collections.Generic;
using System.IO;
#if NET46
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
#endif

namespace NATS.Client
{
    /// <summary>
    /// Represents the method that will handle serialization of <paramref name="obj"/>
    /// to a byte array.
    /// </summary>
    /// <param name="obj">The <see cref="Object"/> to serialize.</param>
    public delegate byte[] Serializer(Object obj);

    /// <summary>
    /// Represents a method that will handle deserialization of a byte array
    /// into an <see cref="Object"/>.
    /// </summary>
    /// <param name="data">The byte array in a <see cref="Msg"/> payload
    /// that contains the <see cref="Object"/> to deserialize.</param>
    /// <returns>The <see cref="Object"/> being deserialized.</returns>
    public delegate Object Deserializer(byte[] data);

    /// <summary>
    /// Provides decoded messages received by subscriptions or requests.
    /// </summary>
    public class EncodedMessageEventArgs : EventArgs
    {
        internal string  subject = null;
        internal string  reply = null;
        internal object  obj = null;
        internal Msg     msg = null;

        internal EncodedMessageEventArgs() {}

        /// <summary>
        /// Gets the subject for the received <see cref="Msg"/>.
        /// </summary>
        public string Subject
        {
            get { return subject; }
        }

        /// <summary>
        /// Gets the reply topic for the received <see cref="Msg"/>.
        /// </summary>
        public string Reply
        {
            get { return reply; }
        }

        /// <summary>
        /// Gets the object decoded (deserialized) from the incoming message.
        /// </summary>
        public object ReceivedObject
        {
            get
            {
                return obj;
            }
        }

        /// <summary>
        /// Gets the original <see cref="Msg"/> that <see cref="ReceivedObject"/> was deserialized from.
        /// </summary>
        public Msg Message
        {
            get
            {
                return this.msg;
            }
        }
    }

    /// <summary>
    /// Represents an <see cref="Connection"/> which uses a client specified
    /// encoding scheme.
    /// </summary>
    public class EncodedConnection : Connection, IEncodedConnection
    {
        private MemoryStream sStream   = new MemoryStream();
        private object       sStreamLock = new object();

        private MemoryStream dStream     = new MemoryStream();
        private object       dStreamLock = new object();

        private  Serializer   onSerialize = null;
        private  Deserializer onDeserialize = null;

        internal EncodedConnection(Options opts)
            : base(opts)
        {
            onSerialize = defaultSerializer;
            onDeserialize = defaultDeserializer;
        }

#if NET46
        private IFormatter f = new BinaryFormatter();

        // Note, the connection locks around this, so while we are using a
        // byte array in the connection, we are still thread safe.
        internal byte[] defaultSerializer(Object obj)
        {
            byte[] rv = null;

            if (obj == null)
                return null;

            lock (sStreamLock)
            {
                sStream.Position = 0;
                f.Serialize(sStream, obj);

                long len = sStream.Position;
                rv = new byte[len];

                // Could be more efficient, but w/o passing a length all the way
                // through publish, we have to do this.   No such thing as slices
                // in .NET
                Array.Copy(sStream.GetBuffer(), rv, len);
            }
            return rv;
        }

        // This could be more efficient, but is straightforward and simple.
        // it'd be nice to have a default serializer per subscription to avoid
        // the lock here, but this  mirrors go.
        //
        // TODO:  Look at moving the default to the wrapper and keeping a deserialization
        // stream there.
        internal object defaultDeserializer(byte[] data)
        {
            if (data == null)
                return null;

            lock (dStreamLock)
            {
                dStream.Position = 0;
                dStream.Write(data, 0, data.Length);
                dStream.Position = 0;

                return f.Deserialize(dStream);
            }
        }
#else
        Serializer defaultSerializer = null;
        Deserializer defaultDeserializer = null;
#endif

        private void publishObject(string subject, string reply, object o)
        {
            if (onSerialize == null)
                throw new NATSException("IEncodedConnection.OnSerialize must be set (.NET core only).");

            byte[] data = onSerialize(o);
            int count = data != null ? data.Length : 0;
            publish(subject, reply, null, data, 0, count, false);
        }

        /// <summary>
        /// Publishes the serialized value of <paramref name="obj"/> to the given <paramref name="subject"/>.
        /// </summary>
        /// <param name="subject">The subject to publish <paramref name="obj"/> to over
        /// the current connection.</param>
        /// <param name="obj">The <see cref="Object"/> to serialize and publish to the connected NATS server.</param>
        /// <exception cref="NATSBadSubscriptionException"><paramref name="subject"/> is
        /// <c>null</c> or entirely whitespace.</exception>
        /// <exception cref="NATSMaxPayloadException">The serialized form of <paramref name="obj"/> exceeds the maximum payload size
        /// supported by the NATS server.</exception>
        /// <exception cref="NATSConnectionClosedException">The <see cref="Connection"/> is closed.</exception>
        /// <exception cref="NATSException"><para><see cref="OnSerialize"/> is <c>null</c>.</para>
        /// <para>-or-</para>
        /// <para>There was an unexpected exception performing an internal NATS call
        /// while publishing. See <see cref="System.Exception.InnerException"/> for more details.</para></exception>
        /// <exception cref="IOException">There was a failure while writing to the network.</exception>
        public void Publish(string subject, Object obj)
        {
            publishObject(subject, null, obj);
        }

        /// <summary>
        /// Publishes the serialized value of <paramref name="obj"/> to the given <paramref name="subject"/>.
        /// </summary>
        /// <param name="subject">The subject to publish <paramref name="obj"/> to over
        /// the current connection.</param>
        /// <param name="reply">An optional reply subject.</param>
        /// <param name="obj">The <see cref="Object"/> to serialize and publish to the connected NATS server.</param>
        /// <exception cref="NATSBadSubscriptionException"><paramref name="subject"/> is <c>null</c> or
        /// entirely whitespace.</exception>
        /// <exception cref="NATSMaxPayloadException">The serialized form of <paramref name="obj"/> exceeds the maximum payload size
        /// supported by the NATS server.</exception>
        /// <exception cref="NATSConnectionClosedException">The <see cref="Connection"/> is closed.</exception>
        /// <exception cref="NATSException"><para><see cref="OnSerialize"/> is <c>null</c>.</para>
        /// <para>-or-</para>
        /// <para>There was an unexpected exception performing an internal NATS call
        /// while publishing. See <see cref="System.Exception.InnerException"/> for more details.</para></exception>
        /// <exception cref="IOException">There was a failure while writing to the network.</exception>
        public void Publish(string subject, string reply, object obj)
        {
            publishObject(subject, reply, obj);
        }

        // Wrapper the handler for keeping a local copy of the event arguments around.
        internal class EncodedHandlerWrapper
        {
            EventHandler<EncodedMessageEventArgs> mh;
            EncodedConnection c;

            internal EncodedHandlerWrapper(EncodedConnection encc, EventHandler<EncodedMessageEventArgs> handler)
            {
                mh = handler;
                c = encc;
            }

            public void msgHandlerToEncoderHandler(Object sender, MsgHandlerEventArgs args)
            {
                EncodedMessageEventArgs ehev = new EncodedMessageEventArgs();
                try
                {
                    byte[] data = args.msg != null ? args.msg.Data : null;
                    ehev.obj = c.onDeserialize(data);
                }
                catch (Exception ex)
                {
                    c.lastEx = new NATSException("Unable to deserialize message.", ex);
                    return;
                }

                ehev.subject = args.msg.Subject;
                ehev.reply = args.msg.Reply;
                ehev.msg = args.msg;

                try
                {
                    mh(this, ehev);
                }
                catch (Exception)
                {
                    /* ignore user thrown exceptions */
                }
            }
        }

        // Keep the wrappers referenced so they don't get GC'd.
        IDictionary<ISubscription, EncodedHandlerWrapper> wrappers =
            new Dictionary<ISubscription, EncodedHandlerWrapper>();

        private IAsyncSubscription subscribeAsync(string subject, string reply,
            EventHandler<EncodedMessageEventArgs> handler)
        {
            if (handler == null)
                throw new ArgumentNullException("Handler cannot be null.");

            if (onDeserialize == null)
                throw new NATSException("IEncodedConnection.OnDeserialize must be set before subscribing.");

            EncodedHandlerWrapper echWrapper = new EncodedHandlerWrapper(this, handler);

            IAsyncSubscription s = base.subscribeAsync(subject, reply,
                echWrapper.msgHandlerToEncoderHandler);

            wrappers.Add(s, echWrapper);

            return s;
        }

        /// <summary>
        /// Expresses interest in the given <paramref name="subject"/> to the NATS Server, and begins delivering
        /// messages to the given event handler.
        /// </summary>
        /// <remarks>The <see cref="IAsyncSubscription"/> returned will start delivering messages
        /// to the event handler as soon as they are received. The caller does not have to invoke
        /// <see cref="IAsyncSubscription.Start"/>.</remarks>
        /// <param name="subject">The subject on which to listen for messages.
        /// The subject can have wildcards (partial: <c>*</c>, full: <c>></c>).</param>
        /// <param name="handler">The <see cref="EventHandler{TEventArgs}"/> invoked when messages are received
        /// on the returned <see cref="IAsyncSubscription"/>.</param>
        /// <returns>An <see cref="IAsyncSubscription"/> to use to read any messages received
        /// from the NATS Server on the given <paramref name="subject"/>.</returns>
        /// <exception cref="ArgumentNullException"><paramref name="handler"/> is <c>null</c>.</exception>
        /// <exception cref="NATSException"><see cref="OnDeserialize"/> is <c>null</c>.</exception>
        /// <exception cref="NATSBadSubscriptionException"><paramref name="subject"/> is
        /// <c>null</c> or entirely whitespace.</exception>
        /// <exception cref="NATSConnectionClosedException">The <see cref="Connection"/> is closed.</exception>
        /// <exception cref="IOException">There was a failure while writing to the network.</exception>
        public IAsyncSubscription SubscribeAsync(string subject, EventHandler<EncodedMessageEventArgs> handler)
        {
            return subscribeAsync(subject, null, handler);
        }

        /// <summary>
        /// Creates an asynchronous queue subscriber on the given <paramref name="subject"/>, and begins delivering
        /// messages to the given event handler.
        /// </summary>
        /// <remarks>The <see cref="IAsyncSubscription"/> returned will start delivering messages
        /// to the event handler as soon as they are received. The caller does not have to invoke
        /// <see cref="IAsyncSubscription.Start"/>.</remarks>
        /// <param name="subject">The subject on which to listen for messages.
        /// The subject can have wildcards (partial: <c>*</c>, full: <c>></c>).</param>
        /// <param name="queue">The name of the queue group in which to participate.</param>
        /// <param name="handler">The <see cref="EventHandler{TEventArgs}"/> invoked when messages are received
        /// on the returned <see cref="IAsyncSubscription"/>.</param>
        /// <returns>An <see cref="IAsyncSubscription"/> to use to read any messages received
        /// from the NATS Server on the given <paramref name="subject"/>.</returns>
        /// <exception cref="ArgumentNullException"><paramref name="handler"/> is <c>null</c>.</exception>
        /// <exception cref="NATSException"><see cref="OnDeserialize"/> is <c>null</c>.</exception>
        /// <exception cref="NATSBadSubscriptionException"><paramref name="subject"/> is
        /// <c>null</c> or entirely whitespace.</exception>
        /// <exception cref="NATSConnectionClosedException">The <see cref="Connection"/> is closed.</exception>
        /// <exception cref="IOException">There was a failure while writing to the network.</exception>
        public IAsyncSubscription SubscribeAsync(string subject, string queue, EventHandler<EncodedMessageEventArgs> handler)
        {
            return subscribeAsync(subject, queue, handler);
        }

        // lower level method to serialize an object, send a request,
        // and deserialize the returning object.
        private object requestObject(string subject, object obj, int timeout)
        {
            byte[] data = onSerialize(obj);
            int count = data != null ? data.Length : 0;
            Msg m = base.request(subject, null, data, 0, count, timeout);
            return onDeserialize(m.Data);
        }

        /// <summary>
        /// Sends a request payload and returns the deserialized response, or throws
        /// <see cref="NATSTimeoutException"/> if the <paramref name="timeout"/> expires.
        /// </summary>
        /// <remarks>
        /// <see cref="Request(string, object, int)"/> will create an unique inbox for this request, sharing a single
        /// subscription for all replies to this <see cref="IEncodedConnection"/> instance. However, if
        /// <see cref="Options.UseOldRequestStyle"/> is set, each request will have its own underlying subscription.
        /// The old behavior is not recommended as it may cause unnecessary overhead on connected NATS servers.
        /// </remarks>
        /// <param name="subject">The subject to publish <paramref name="obj"/> to over
        /// the current connection.</param>
        /// <param name="obj">The <see cref="Object"/> to serialize and publish to the connected NATS server.</param>
        /// <param name="timeout">The number of milliseconds to wait.</param>
        /// <returns>A <see cref="Object"/> with the deserialized response from the NATS server.</returns>
        /// <exception cref="ArgumentOutOfRangeException"><paramref name="timeout"/> is less than or equal to zero
        /// (<c>0</c>).</exception>
        /// <exception cref="NATSBadSubscriptionException"><paramref name="subject"/> is <c>null</c> or
        /// entirely whitespace.</exception>
        /// <exception cref="NATSMaxPayloadException">The serialized form of <paramref name="obj"/> exceeds the maximum payload size
        /// supported by the NATS server.</exception>
        /// <exception cref="NATSConnectionClosedException">The <see cref="Connection"/> is closed.</exception>
        /// <exception cref="NATSTimeoutException">A timeout occurred while sending the request or receiving the
        /// response.</exception>
        /// <exception cref="NATSException">There was an unexpected exception performing an internal NATS call
        /// while executing the request. See <see cref="System.Exception.InnerException"/> for more details.</exception>
        /// <exception cref="IOException">There was a failure while writing to the network.</exception>
        public object Request(string subject, object obj, int timeout)
        {
            return requestObject(subject, obj, timeout);
        }

        /// <summary>
        /// Sends a request payload and returns the deserialized response.
        /// </summary>
        /// <remarks>
        /// <see cref="Request(string, object)"/> will create an unique inbox for this request, sharing a single
        /// subscription for all replies to this <see cref="IEncodedConnection"/> instance. However, if
        /// <see cref="Options.UseOldRequestStyle"/> is set, each request will have its own underlying subscription.
        /// The old behavior is not recommended as it may cause unnecessary overhead on connected NATS servers.
        /// </remarks>
        /// <param name="subject">The subject to publish <paramref name="obj"/> to over
        /// the current connection.</param>
        /// <param name="obj">The <see cref="Object"/> to serialize and publish to the connected NATS server.</param>
        /// <returns>A <see cref="Object"/> with the deserialized response from the NATS server.</returns>
        /// <exception cref="NATSBadSubscriptionException"><paramref name="subject"/> is <c>null</c> or
        /// entirely whitespace.</exception>
        /// <exception cref="NATSMaxPayloadException">The serialized form of <paramref name="obj"/> exceeds the maximum payload size
        /// supported by the NATS server.</exception>
        /// <exception cref="NATSConnectionClosedException">The <see cref="Connection"/> is closed.</exception>
        /// <exception cref="NATSTimeoutException">A timeout occurred while sending the request or receiving the
        /// response.</exception>
        /// <exception cref="NATSException">There was an unexpected exception performing an internal NATS call while
        /// executing the request. See <see cref="System.Exception.InnerException"/> for more details.</exception>
        /// <exception cref="IOException">There was a failure while writing to the network.</exception>
        public object Request(string subject, object obj)
        {
            return requestObject(subject, obj, -1);
        }

        // when our base (Connection) removes a subscriber, clean up
        // our references to the encoded handler wrapper.
        internal override void removeSub(Subscription s)
        {
            // The subscription may not be present - request reply uses
            // a sync subscription which won't be added to the wrappers.
            if (wrappers.ContainsKey(s))
            {
                wrappers.Remove(s);
            }

            base.removeSub(s);
        }

        /// <summary>
        /// Gets or sets the method which is called to serialize
        /// objects sent as a message payload.
        /// </summary>
        /// <remarks>If <c>null</c> is given then the
        /// default serialization method for the platform is used, if one exists.</remarks>
        public Serializer OnSerialize
        {
            get
            {
                return onSerialize;
            }
            set
            {
                if (value == null)
                    onSerialize = defaultSerializer;
                else
                    onSerialize = value;
            }
        }

        /// <summary>
        /// Gets or sets the method which is called to deserialize
        /// objects from a message payload.
        /// </summary>
        /// <remarks>If <c>null</c> is given then the
        /// default deserialization method for the platform is used, if one exists.</remarks>
        public Deserializer OnDeserialize
        {
            get
            {
                return onDeserialize;
            }
            set
            {
                if (value == null)
                    onDeserialize = defaultDeserializer;
                else
                    onDeserialize = value;
            }
        }

        /// <summary>
        /// Closes the <see cref="EncodedConnection"/> and optionally releases the managed resources.
        /// </summary>
        /// <param name="disposing"><c>true</c> to release both managed
        /// and unmanaged resources; <c>false</c> to release only unmanaged
        /// resources.</param>
        protected override void Dispose(bool disposing)
        {
            dStream.Dispose();
            sStream.Dispose();
            base.Dispose(disposing);
        }
    }
}


text:
Canadian Forces Northern Area Headquarters (CFNA HQ) Whitehorse is a detachment of the Canadian Forces, based approximately  south of Whitehorse, Yukon.

Canada's military has operated in the area since the days of the famous volunteer Yukon Field Force, established by the Non-Permanent Active Militia in 1898, to help the North-West Mounted Police maintain law and order during the Gold Rush.

With the creation of the Alaska Highway through the region in 1942, Whitehorse developed into an important regional centre for communication and transportation. However, it was not until 1970 that the newly formed Canadian Forces established a permanent military presence in the area with the formation of the Northern Area Detachment at a base near Whitehorse, as well as another in Yellowknife, Northwest Territories, CFNA HQ Yellowknife.

CFNA HQ Whitehorse is frequently used for cadet training in the summer months.

External links
Joint Task Force (North) Detachment Yukon

Canadian Forces bases in Yukon
1970 establishments in Canada
Whitehorse


text:
Q: Objective-C in Qt with Mavericks I've been using Objective-C mixed with C++ in Qt without any issues; using .mm files where required.
After upgrading my build machine to Mavericks, I initially noticed that the framework headers were missing, so installed the XCode command line tools, which fixed the issue.
Now, I'm getting a problem compiling Objective-C files with errors complaining about code in the frameworks. For example: -

System/Library/Frameworks/Foundation.framework/Versions/C/Headers/NSUserNotification.h:16:44: error: missing ',' between enumerators
      NSUserNotificationActivationTypeReplied NS_AVAILABLE(10_9, NA) = 3

And

/System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSApplication.h:58:34: error: expected ';' after top level declarator
  typedef NSInteger NSModalResponse NS_AVAILABLE_MAC(10_9);

I've upgraded to Qt 5.2.1, but the issues remain and it's coming from including standard framework headers; in this case: -
#import <NSUserNotification.h>
#import <NSApplication.h>

Can someone please explain what's changed in Mavericks and how I can fix these errors?

A: You're supposed to include the frameworks as Framework/Header.h. It seems that you've added some unnecessary includes to your project file.
The following works for me:
#project.pro
TEMPLATE = app

LIBS += -framework AppKit -framework Foundation

OBJECTIVE_SOURCES = main.mm

//main.mm
#import <Foundation/NSUserNotification.h>
#import <AppKit/NSApplication.h>
#include <QCoreApplication>

int main(int argc, char ** argv)
{
   QCoreApplication a(argc, argv);
   NSApplication * app = [NSApplication sharedApplication];
   return 0;
}


text:
Q: In tennis, why does topspin serve bounce higher than flat serve? When receiving servers (while playing tennis), I've noticed that the tennis ball seems to bounce up higher on me when the server uses a topspin serve than when the server hits a flat serve.  Why is that?
Is it because of something about how the spin affects the bounce of the ball (i.e., the effect of the spin during the time when the tennis ball is in contact with the court)?  Is it because of how the spin affects the flight of the ball while it is in the air?  Perhaps it's because topspin serves tend to be hit with a higher, "loopier" trajectory, and this changes the angle of incidence when the ball hits the court during the bounce?  Or maybe it's something else entirely?  What would you expect the effect of the topspin to be on the trajectory of the ball, based upon physical principles?

Background on tennis: When serving, the server has to hit the tennis ball over the net and then into the service box; the ball is required to bounce within the service box.  The receiver stands back a bit, and after it bounces up, the receiver hits it back.
A flat serve is a serve where the ball has no spin.  A topspin serve is a serve with topspin: the top of the tennis ball is rotating forward (in the direction of the ball's travel) and the bottom of the ball is moving backward (opposite the direction of the ball's travel).  Topspin causes the tennis ball to "curve downwards", due to the Magnus effect.
From the server's perspective, topspin is useful, because it means the server can hit the ball higher over the net and the serve will still go in.  That allows a topspin serve to be more reliable: the server has more margin for error.  In contrast, with a flat serve, the serve has to be aimed very precisely: aim too high, and the ball will "go long" and bounce outside of the service box; aim too low, and the ball will hit the net.  A flat serve will usually look like a "line drive" (the path of the ball is close to a straight line), while a top spin serve will look more "loopy" (the ball goes higher over the net, then swerves down).
Flat serves usually travel faster.  With a topspin serves, the ball usually doesn't have quite as much velocity (I imagine some of the energy of the server is spent on imparting spin, rather than propelling the ball forward).  Nonetheless, from my personal experience, it feels like when I am receiving a topspin serve, the ball bounces up higher and often gets out of my comfort zone: the flat serve might bounce up to waist level, where it's comfortable to hit the ball, but the topspin serve might bounce up to shoulder level, where it's less comfortable.  Why does this happen?  Or, is it an illusion?

A: When the player hits the ball with top spin, it makes the ball, well, spin.
By spinning, the ball will modify the airflow around itself and thus create an air pressure profile which will deflect the ball : this is the Magnus effect.
So by applying top spin on the ball the way tennis players do, the ball is rotating in the direction of the trajectory. This will bend the trajectory downwards. If you look at the ball's speed as a vector, the vertical component of the top-spun ball's velocity is greater than the normal served ball.
You simply direct the ball more vertically into the ground with a top spin. So after contact with the ground, the ball with top spin will leave the ground more vertically than a normal ball.
Since you are familiar with the sport, you might also have noticed that after contact, the top-spun ball will slightly accelerate towards you. This comes from the fact that part of its rotation has transfered itself into horizontal momentum. If you let a spinning ball fall vertically on the ground, after contact, it will fly out flat in some direction. I think this is also one of the reason why top spin serves are so hard to handle.

A: Serves hit with topspin will typically bounce higher than flatter serves because:

*

*They are to be hit with a loopier trajectory, to increase net clearance. The apex of a topspin serve will be higher than a flatter serve to begin with. Even if the ball had no spin at all, it would bounce higher.

*The Magnus effect generated by the spin of the ball produces a downward force on the ball, pulling it back down into the court. This increases the vertical velocity of the ball, which will result in it bouncing higher.

*A topspun shot will typically also lose less horizontal velocity due to friction from the ground than a flat shot. In fact, if the tangential velocity of the ball is greater than its horizontal velocity, the force of friction will accelerate the ball forward, resulting in a more pronounced "kick"
An effective topspin serve will bounce above shoulder level for a receiver standing on the baseline, making it more uncomfortable for them to return the ball. That's just biomechanics.

A: Because you typically also hit topspin shots with more momentum because you can. Without topspin, adding pace to most shots will send them out of the court.


Hazel Irene Folks, 88, passed away Sunday, March 18, 2018.
Born Dec. 26, 1929 in Wester City, Ia., to Roscoe and Laura Cook, she loved her family and welcomed many family members and friends into her home at "Pine Tree Ranch".
A member of Immanuel Baptist Church in Wausaukee, she faithfully served and showed Christ's love to others.
Along with her parents, she was preceded in death by her husband, James; two brothers, Richard Cook and Willis Cook and three sisters, Esther Wise, Annie Petrusson and Ruth Sjoquist.
She is survived by two brothers, Lloyd (Ruth) Cook and Stanley Cook; two sisters, Julie McFadden and Pat Betts and 38 nieces and nephews.
Visitation will be held at Immanuel Baptist Church in Wausaukee on Saturday, March 24 from 10 a.m. until time of a Celebration of Life Service at 1 p.m., with Pastor Brian Sjoquist officiating, followed by burial at Evergreen Cemetery in Wausaukee. A dinner will be held for family and friends after the burial at Immanuel Church. Roubal Funeral Home of Wausaukee is assisting the family with arrangements.


Kenya Airways (KQ) is suspending services to Muscat (MCT) and Rome (FCO) as part of its capacity optimization plans aimed at increasing frequency on some existing routes, and introducing new destinations in Africa and the Middle East.
"Kenya amends flight schedules to optimize capacity" is part of ATW Plus, our online premium membership. Subscribing will provide you access to exclusive news, carefully researched airline financial, fleet and traffic data, plus the option to receive our popular, award-winning print magazine. To learn more, click here. If viewing via ATW Mobile, please login and click "Read web article" to view fully. Questions? ATWPlus@penton.com.


text:
La   est une gare ferroviaire située sur le territoire de la commune italienne de Corniglia, dans la province de La Spezia, en Ligurie.

Situation ferroviaire
Établie à  d'altitude, la gare de Corniglia est située au point kilométrique  de la ligne Gênes-Pise.

Elle est dotée de trois voies, dont une en impasse accessible depuis Gênes, encadrées par un quai latéral et un quai central.

Histoire
La gare a été inaugurée le , en même temps que la section de Sestri Levante à La Spezia de la ligne Gênes-Pise. Le bâtiment voyageurs a été, tandis que le bâtiment des passagers a été érigé en .

Dans le cadre des travaux de doublement et de modernisation de la ligne, la gare a été entièrement reconstruite. À cette occasion, afin d'éviter d'imposer des travaux de terrassement, le niveau de la gare a été relevé de  et, parallèlement, des travaux ont été réalisés pour réguler les rivières concernées. Le nouveau bâtiment des passagers a été achevé en . À l'entrée du tunnel de Guvano, en direction de Vernazza, un bâtiment a également été construit pour le logement du personnel.

Le , le doublement de la voie entre Monterosso et Corniglia est inauguré ainsi que la présente gare de Vernazza.

Service des voyageurs

Accueil
Gare de Ferrovie dello Stato Italiane, elle est dotée d'un bâtiment voyageurs avec un guichet et un Distributeur automatique de titres de transport.

Desserte
La gare de Corniglia est desservie toutes les heures toute l'année par des trains Regionale reliant Sestri Levante à La Spezia, dont certains sont amorcés depuis Savone ou Gênes. Une paire de trains Regionale Veloce reliant Gênes à La Spezia marque également l'arrêt en gare de Corniglia.
En saison touristique, les trains Regionale  assurent une desserte omnibus cadencée à la demi-heure entre Levanto et La Spezia Centrale, dont certains trains sont prolongés jusqu'à La Spezia Migliarina ou Sarzana.

Intermodalité
La gare de Corniglia est en correspondance avec une ligne d'autobus, exploitée par ATC Esercizio, reliant la gare au village homonyme.

Notes et références

Voir aussi

Articles connexes
 Ligne Gênes-Pise
 Cinque Terre

Lien externe
 .

Gare en Ligurie
Gare mise en service en 1874
Gare de Corniglia
Gare de Corniglia


text:
Support & Advertise
Festivals, Markets, Parties
Kids' & Families' Events
Medium at Large – Shapeshifting Material and Methods in Contemporary Art
Ho Tzu Nyen, The Cloud of Unknowing, photographs by Russell Adam Morton
Medium at Large explores the idea of medium in contemporary art, examining some of the most fundamental and pressing questions of art – its making, and also our experience, encounter and understanding of it.
The year-long exhibition at Singapore Art Museum (SAM) revels in the rich expanse of materials that contemporary artworks can be made of, and from, as well as the very 'slipperiness' of media, as categories and genres begin to slide into one another.
Art has long been classified by genres and disciplines, such as painting, sculpture, and photography, yet in resisting the confines of traditional definitions, contemporary works often behave in genre-bending ways, where a painting may slide into video or a video performs like drawing and a drawing is painterly.
In other instances, a work's specific medium also embodies the weight of its concept, symbolism and significance, and artists have incorporated an astonishing breadth of material in producing these works. The artwork media here range from oil paint, to rattan, human hair, whitening soap, live bullet shells, as well as 'dematerialised' media like sound, language and text.
Event: Medium at Large: Shapeshifting Material and Methods in Contemporary Art
Dates: Till May 2015
Venue: Singapore Art Museum, 71 Bras Basah Rd Singapore 189555
Hours:	Mon – Sun 10.00am – 7.00pm, Fri 10.00am – 9.00pm
Info: www.singaporeartmuseum.sg
Tags: Singapore Art Museum
SAGG Facebook News
© 2018. Singapore Art & Gallery Guide