text:
Classical music of the United Kingdom
The Royal Albert Hall in London. A major venue for classical and other forms of music.
Classical music of the United Kingdom is taken in this article to mean classical music in the sense elsewhere defined, of formally composed and written music of chamber, concert and church type as distinct from popular, traditional, or folk music. The term in this sense emerged in the early 19th century, not long after the United Kingdom of Great Britain and Ireland came into existence in 1801. Composed music in these islands can be traced in musical notation back to the 13th century, with earlier origins. It has never existed in isolation from European music, but has often developed in distinctively insular ways within an international framework. Inheriting the European classical forms of the 18th century (above all, in Britain, from the example of Handel), patronage and the academy and university establishment of musical performance and training in the United Kingdom during the 19th century saw a great expansion. Similar developments occurred in the other expanding states of Europe (including Russia) and their empires. Within this international growth the traditions of composition and performance centred in the United Kingdom, including the various cultural strands drawn from its different provinces, have continued to evolve in distinctive ways through the work of many famous composers.
1 Early and Baroque music
2 Early nineteenth century
2.1 Major foundations
2.2 Performers and composers
3 British musical renaissance 1860-1918
3.2 Growth of venues and orchestras
3.3 English language opera
3.4 Religious and mythical works
3.5 Late nineteenth-century foundations
3.6 National or pastoral school
4 Twentieth century
5 Twenty-first century
6 Festivals and venues
Early and Baroque musicEdit
Main articles: Early music of the British Isles and Baroque music of the British Isles
George Frideric Handel was a leading figure of early 18th-century British music.
Music in the British Isles, from the earliest recorded times until the Baroque and the rise of recognisably modern classical music, was a diverse and rich culture, including sacred and secular music and ranging from the popular to the elite.[1] Each of the major nations of England, Ireland, Scotland and Wales retained unique forms of music and of instrumentation, but British music was highly influenced by continental developments, while British composers made an important contribution to many of the major movements in early music in Europe, including the polyphony of the Ars Nova and laid some of the foundations of later national and international classical music.[2] Musicians from the British Isles also developed some distinctive forms of music, including Celtic chant, the Contenance Angloise, the rota, polyphonic votive antiphons and the carol in the medieval era and English madrigals, lute ayres and masques in the Renaissance era, which led particularly to English language opera developed in the early Baroque period.[3] The dominant figure in classical music in the later baroque era, and beyond, was the German-born George Frideric Handel (1685–1759).
Early nineteenth centuryEdit
With the Act of Union 1800 passed by both the Parliament of Great Britain and the Parliament of Ireland, the United Kingdom of Great Britain and Ireland was formed, and it becomes possible to speak of classical music in the United Kingdom.[4] This was also the period when classical music began to be recognised as an important element of British and Irish culture and to be placed on a more organised basis that could match some of the developments seen in continental Europe. Music in this period has been seen as dominated by continental trends and composers.
Major foundationsEdit
In 1813 the London Philharmonic Society was established, which played an important role in the development of musical life in the kingdom. Founders included Sir George Smart, Johann Baptist Cramer, Muzio Clementi, William Ayrton (musical director of the King's Theatre), William Shield, Henry Bishop, Thomas Attwood (composer and organist of St Paul's Cathedral, and teacher of John Goss), Johann Peter Salomon and Vincent Novello. Under their aegis an annual programme of concerts of international calibre was established. The Society was a commissioning patron of Beethoven's Choral Symphony (No. 9).[5]
Musical training was placed on a newly professional footing by the creation in 1822 of the Royal Academy of Music, which received a royal charter in 1830, which attempted to train British musicians to the same standards as those of the continent.[6] Its first principal was the oratorio composer Dr William Crotch (1745–1847), and the first tutor of piano was Cipriani Potter (1792–1871). Potter was the first London performer of Mozart and Beethoven concerti. He wrote nine symphonies and four piano concerti and as principal from 1832-59 was highly influential in the development of British music and the profession of musician.[7]
The significance of classical music in Ireland, and to a degree its place in conflicting British and Irish identities, was signalled by the foundation of the Dublin Choral Society in 1837, the Irish Academy of Music in 1848 (which was to be granted a royal charter in 1872); and the Royal Choral Institute in 1851 under such figures as Sir Robert Prescot.[8]
Performers and composersEdit
John Field, c. 1820
In the earlier part of the century the British singers Michael Kelly, Nancy Storace and John Braham were prominent and by their example sustained the international opera and oratorio works of Handel, Haydn, Mozart and their successors in the British arena.[9] Braham, whose career thoroughly spanned the opera stage and concert platform, established a tradition in public recital which was continued by his successors down into the early 20th century.[10] Arias or ballads from the English opera became concert standards in recital.
The Irish composer and virtuoso pianist John Field (1782–1837) was highly influential in his style of playing, inventing the nocturne and he is thought to have been an inspiration to Schumann, Chopin and Liszt.[11]
Perhaps the most influential composer of the first half of the 19th century was the German Felix Mendelssohn, who visited Britain ten times for a total of twenty months from 1829. He won a strong following through the Philharmonic Society, sufficient for him to make a deep impression on British musical life. Not only did he compose and perform, but he also edited for British publishers the first critical editions of oratorios of Handel and of the organ music of J. S. Bach. Scotland inspired two of his most famous works, the overture Fingal's Cave (also known as the Hebrides Overture) and the Scottish Symphony (Symphony No. 3). His oratorio Elijah was premièred in Birmingham at the Triennial Music Festival on August 26, 1846. On his last visit to England in 1847 he was the soloist in Beethoven's Piano Concerto No. 4 and conducted his own Scottish Symphony with the Philharmonic Orchestra before Queen Victoria and Prince Albert.[12] A number of British piano students of promise were sent to the Leipzig Conservatory established by Mendelssohn.[13]
British musical renaissance 1860-1918Edit
Classical music has been seen as undergoing a fundamental shift in focus and importance from the second half of the 19th century, as it began to search for a distinctive national identity or identities and played an increasing role in British cultural life.[14]
Native singers shared the dramatic stage with international stars in Italian and German opera, notably Clara Novello, Helen Lemmens-Sherrington, Sims Reeves and Charles Santley.[15] After 1856 the Swedish born Jenny Lind, perhaps the most internationally renowned singer of the era, settled permanently in England, continuing to perform and teach.[16]
Among the most important figures in British classical music in this period was Sir William Sterndale Bennett. A RAM pupil of Potter's, he was a pianist, composer and conductor who for eleven years took control of the Philharmonic Society baton.[17] Lucy Anderson and her pupil Arabella Goddard, with Franklin Taylor, were leading native mid-Victorian pianists.[18]
Growth of venues and orchestrasEdit
The Royal Opera House, Bow Street frontage, with Enzo Plazzotta's statue 'Young Dancer' in the foreground
This century saw the trend towards larger orchestras and correspondingly larger musical venues, permitting public concerts for mass audiences. The Crystal Palace concerts were inaugurated in 1855, with August Manns as the principal conductor and the Handel Triennial Festival, an older institution involving massed choirs before vast audiences, was transferred there.[19] Covent Garden's Royal Opera House was opened in 1858, on the site of an earlier theatre and the Royal Albert Hall was built in 1878.[20]
Orchestras which were founded in this period included the Royal Liverpool Philharmonic Orchestra (1840),[21] the Hallé Orchestra at Manchester under Sir Charles Hallé (1858),[22] and the Scottish Orchestra (1891), now the Royal Scottish National Orchestra.[23]
English language operaEdit
Main article: Opera in English
One of the notable features of the mid-19th century is the revival of a tradition of English language opera. Arthur Sullivan, a pupil of Goss, came to public attention in the 1860s with Shakespeare incidental music, The Tempest (1862), The Merchant of Venice (1871), his Irish Symphony (1863–66) and In Memoriam.[24]
The period 1835-1865 saw the height of popularity for the Irish born Michael Balfe (1808–70), composer of The Bohemian Girl (1843),[25] the operas of John Pyke Hullah (1812–84),[26] and the earlier English operas of German-born Sir Julius Benedict (1804–85), including his best-known, The Lily of Killarney (1862).[27] Maritana (1845) was the most famous and ballad-rich of the Irish born William Vincent Wallace's operas.[28] The operas of Frederic Clay (1838–89) were among the most popular of the period, including Ages Ago (1869), The Gentleman in Black (1870) and Happy Arcadia (1872), all written with W. S. Gilbert (1836–1911).[29]
The Savoy opera collaborations between Gilbert and Sullivan began in 1875 with Trial by Jury. They were in the British light opera tradition with spoken dialogue. They reached their heyday in the 1880s with The Pirates of Penzance (1880), and The Gondoliers (1889), and concluded in 1896 with The Grand Duke. They had rivals like Alfred Cellier's (1844–91) Dorothy (1886) and The Mountebanks (1892), but were the most successful operas of the era and have been among the most frequently revived.[24]
Religious and mythical worksEdit
Sir William Sterndale Bennett in 1861
In the later 19th century there was an increasing appetite for large scale works that covered epic, biblical and mythical themes. This was reflected in the topics of operas, cantatas and oratorios, often utilising British poems and novels. These included choral works like William Sterndale Bennett's The May Queen (1858),[30] Ebenezer Prout's Hereward and King Alfred[31] and cantatas like Sullivan and Henry Fothergill Chorley's The Masque at Kenilworth (1864),[32] John Francis Barnett's Ancient Mariner (1867)[33] and Frederic Hymen Cowen's The Rose Maiden (1870) and Harold (1895).[34] Similar trends can be seen in operas such as George Alexander Macfarren's Robin Hood (1860), Sullivan's Ivanhoe (1891) and in the operas of Arthur Goring Thomas, which included Esmeralda (1883) and Nadeshda (1885).[35][36]
The works of Handel, Mendelssohn and Spohr continued to be a major part of the British musical repertoire but there was an increasing emphasis on religious drama. The Italian-born Sir Michael Costa's Eli (1855) and Naaman (1864)[21] set the pace for the later development in the works of Sullivan, including The Martyr of Antioch (1880) The Light of the World (1873), and The Golden Legend (1886), John Liptrot Hatton's Hezekiah (1877), Joseph Barnby's Rebekah (1870), William Cusins's Gideon (1871), Alfred R. Gaul's The Holy City (1882), Charles Gounod's Redemption (1882) and Mors et Vita (1885) (produced expressly for the British public), and Sir John Stainer's The Crucifixion (1887).[37] Arguably the last of the great English Victorian composers to emerge was Edward Elgar (1857–1934), who during the 1890s produced his Caractacus and King Olaf cantatas, the Enigma Variations in 1899, and the revolutionary Dream of Gerontius in 1900.[38]
Late nineteenth-century foundationsEdit
Between 1880 and 1887 the London Guildhall School of Music was established.[39] The Royal College of Music, originating in a training school under Arthur Sullivan, was founded (1882–83) under Sir George Grove.[39] The Queen's Hall Promenade Concerts, led by Sir Henry Wood were founded in 1895.[40]
A member of teaching staff at the RCM from 1884 and director from 1894 until his death was Sir Hubert Parry (1848–1918), who used it as a platform for creativity and a reformation of British music. His own works included the cantatas Prometheus Unbound (1880) and King Saul (1894), and four symphonies, among them the English (1889).[41] His great contemporary was the Irish-born Sir Charles Villiers Stanford (1852–1924), who was professor of composition at the RCM from 1883; conductor of The Bach Choir from 1886 to 1902; was professor of music at Cambridge from 1887 and conductor of the Leeds Philharmonic Society (1897–1909), and of the Leeds Festival (1901 to 1910).[42] These figures had a profound effect on a generation of composers that included Gustav Holst and Ralph Vaughan Williams.
National or pastoral schoolEdit
Frederick Delius in 1929
A notable feature of the late 19th century and early 20th century was the creation of an English national or pastoral school of classical music. This paralleled similar developments in most European countries, for instance in the music of Smetana, Dvořák, Grieg, Liszt, Wagner, Nielsen and Sibelius.[43] The movement was particularly influenced by the British folk revival through the work of figures such as Sabine Baring-Gould and Cecil Sharp. Examples include the Australian Percy Grainger's Molly on the Shore (1907), Frederick Delius' Brigg Fair (1908), and Ralph Vaughan Williams' English Folk Song Suite (1923) for brass band, as well as subtler references to folk themes in other works including the works of Arnold Bax, George Butterworth, Gustav Holst, Samuel Coleridge-Taylor and John Ireland.[44] Similar developments could be seen in Scotland in the work of Sir Alexander Mackenzie, who celebrated his native Scotland in three Scottish Rhapsodies for orchestra (1880–81, 1911), and in various concerted works for piano or violin and orchestra composed during the 1880s and 1890s.[45] Similarly, John McEwen's Pibroch (1889), Border Ballads (1908) and Solway Symphony (1911) also incorporated traditional Scottish folk melodies.[46]
Twentieth centuryEdit
Under the Anglo-Irish Treaty of 1921, twenty-six of Ireland's thirty-two counties, including the city of Dublin, were formally separated from the United Kingdom. While the two countries continued to share a classical music heritage, they would now develop on different lines.[47]
In what was now the United Kingdom of Great Britain and Northern Ireland, the outstanding composers of the century included William Walton, Benjamin Britten, Michael Tippett, Lennox Berkeley, and Havergal Brian. Their individual approaches to music and its part in the national identity differed significantly. Walton's work featured fanfares and patriotic themes, including the ceremonial marches Crown Imperial, written for the coronation of King George VI and Queen Elizabeth, and Orb and Sceptre, for that of Queen Elizabeth II.[48] Britten, on the other hand, made a conscious effort to set himself apart from the English musical mainstream, which he regarded as complacent, insular and amateurish. His works included the operas Peter Grimes (1945), and Billy Budd (1951), as well the instrumental compositions Nocturnal after John Dowland for guitar (1964).[49][50] It is arguable that this trend may have contributed to the revival of interest in early music which has been led, in Britain, by such figures as Arnold Dolmetsch and David Munrow.[51]
Twenty-first centuryEdit
The Royal College of Music from Prince Consort Road, London
In the present era, classical music in Britain must contend and co-exist with a dominant culture of popular music. Specialist music education at establishments such as the Royal Academy of Music, Royal College of Music, Royal Scottish Academy of Music and Drama, Royal Northern College of Music, Royal Birmingham Conservatoire and Guildhall School of Music,[52] Trinity Laban Conservatoire of Music and Dance[citation needed] and the Royal Welsh College of Music & Drama as well as within British Universities provide world-class music teaching to gifted classical musicians.[52]
Notable modern composers include: Peter Maxwell Davies, Harrison Birtwistle, Robin Holloway, George Benjamin, Thomas Ades, Oliver Knussen, James MacMillan, Judith Weir, Peter Seabourne, Alexander Goehr, Jonathan Harvey, Sally Beamish, Julian Anderson, Hugh Wood and at a more popular level Andrew Lloyd Webber, represent very different strands of composition within UK classical music.[53]
Festivals and venuesEdit
The United Kingdom is host to many major orchestras, festivals and venues. The Royal Philharmonic Society (founded 1813) and "The Proms" have presented annual music programmes of international status since the early 19th century. The Aldeburgh Festival, founded by Benjamin Britten is another annual musical event of international status.
TimelineEdit
^ R. McKitterick, C. T. Allmand, T. Reuter, D. Abulafia, P. Fouracre, J. Simon, C. Riley-Smith, M. Jones, eds, The New Cambridge Medieval History: C. 1415- C. 1500 (Cambridge University Press, 1995), p. 319.
^ W. Lovelock, A Concise History of Music (Frederick Ungar, 1953), p. 57.
^ R. H. Fritze and W. Baxter Robison, Historical dictionary of late medieval England, 1272-1485 (Greenwood, 2002), p. 363; G. H. Cowling, Music on the Shakespearian Stage (Cambridge University Press, 2008), p. 6.
^ H. Kearney, The British Isles, a History of Four Nations (Cambridge: Cambridge University Press, 2006), p. 214.
^ C. Ehrlich, First philharmonic: a history of the Royal Philharmonic Society (Oxford: Oxford University Press, 1995), pp. 1-36.
^ D. A. Rohr, The Careers of British Musicians, 1750-1850: a Profession of Artisans (Cambridge: Cambridge University Press, 2001), pp. 79-80.
^ T. M. Ellsworth and S. Wollenberg, eds, The Piano in Nineteenth-century British Culture: Instruments, Performers and Repertoire (Aldershot: Ashgate Publishing, Ltd., 2007), p. 3.
^ M. McCarthy. Passing it on: the transmission of music in Irish culture (Cork: Cork University Press, 1999), p. 47-8.
^ A. Steptoe, ed., The Mozart-Da Ponte operas: the cultural and musical background to Le nozze di Figaro, Don Giovanni, and Così fan tutte (Oxford: Oxford University Press, 1990), p. 148.
^ P. Gordon, Musical visitors to Britain, (London: Routledge, 2005), pp. 253-5.
^ S. Sadie and A. Latham, The Cambridge Music Guide (Cambridge: Cambridge University Press, 1990), p. 328.
^ D. Conway, '"Short, Dark and Jewish-Looking": Felix Mendelssohn in Britain', The Jewish Year Book (2009), ed. S. Massil, p. xviii.
^ T. M. Ellsworth and S. Wollenberg, The piano in nineteenth-century British culture: instruments, performers and repertoire (Aldershot: Ashgate, 2007), p. 4.
^ R. A. Stradling and M. Hughes, The English Musical Renaissance, 1860-1940: Construction and Deconstruction (London: Taylor & Francis, 1993).
^ C. Hartley and S. Leckey, A Historical Dictionary of British Women (London: Routledge, 2nd edn., 2003), p. 275.
^ Lee, Sidney, ed. (1912). "Goldschmidt, Otto" . Dictionary of National Biography (2nd supplement). 2. London: Smith, Elder & Co. p. 124.
^ P. Horton, "William Sterndale Bennett, composer and pianist", in T. M. Ellsworth and S. Wollenberg, eds, The piano in nineteenth-century British Culture: Instruments, Performers and Repertoire (Aldershot: Ashgate, 2007), pp. 119-48.
^ T. M. Ellsworth, "Victorian pianists as concert artists: the case of Arabella Godard", in T. M. Ellsworth and S. Wollenberg, eds., The Piano in Nineteenth-Century British Culture: Instruments, Performers and Repertoire (Aldershot: Ashgate, 2007), p. 153.
^ M. Musgrave, The Musical Life of the Crystal Palace (Cambridge: Cambridge University Press, 1995), pp. 67-81.
^ M. Kilburn, London's Theatres (New Holland Publishers, 2002), p. 112.
^ a b D. M. Randel, The Harvard Dictionary of Music (Harvard University Press, 2003), p. 292.
^ M. Kennedy, The Hallé, 1858-1983: a History of the Orchestra (Manchester: Manchester University Press, 1982).
^ C. Harvie, No gods and precious few heroes: Twentieth-century Scotland (Edinburgh: Edinburgh University Press, 3rd edn., 1998), p. 137.
^ a b M. Ainger, Gilbert and Sullivan: a dual biography (Oxford: Oxford University Press, 2002).
^ W. Tyldesley, Michael William Balfe: his life and his English operas (Aldershot: Ashgate, 2003).
^ F. M. L. Thompson, The University of London and the world of learning, 1836-1986 (Continuum, 1990), pp. 184-5.
^ R. A. Streatfeild. The Opera (BiblioBazaar, LLC, 2007), p. 223.
^ V. B. Lawrence and G. T. Strong, Reverberations, 1850-1856 (Chicago IL: University of Chicago Press, 1995), p. 541.
^ M. Ainger, Gilbert and Sullivan: a dual biography (Oxford: Oxford University Press, 2002), pp. 83-4.
^ G. P. Upton, The Standard Oratorios (BiblioBazaar, LLC, 2008), p. 46.
^ W. L. Hubbard, The American History and Encyclopedia of Music: Musical Biographies Part Two (Kessinger, 2005), p. 176.
^ D. Shrock, Choral Repertoire (Oxford: Oxford University Press, 2009), p. 532.
^ Michael Musgrave, The musical life of the Crystal Palace (Cambridge: Cambridge University Press, 1995), pp. 107-8.
^ D. M. Randel, The Harvard Biographical Dictionary of Music (Harvard University Press, 1996), p. 184.
^ R. Beale, Charles Hallé: a Musical Life (Aldershot: Ashgate, 2007), p. 128.
^ D. J. Grout, A Short History of Opera (Columbia University Press, 2nd edn, 1965), p. 488.
^ H. E. Smither, A History of the Oratorio: the Oratorio in the Nineteenth and Twentieth Centuries (UNC Press, 2000), p. 311.
^ J. N. Moore, Edward Elgar: a Creative Life (Oxford: Oxford University Press, 1999).
^ a b R. A. Stradling and M. Hughes, The English Musical Renaissance, 1860-1940: Construction and Deconstruction (London: Taylor & Francis, 1993), p. 47.
^ R. A. Stradling and M. Hughes, The English Musical Renaissance, 1860-1940: Construction and Deconstruction (London: Taylor & Francis, 1993), p. 46.
^ J. Dibble, C. Hubert H. Parry: His Life and Music (Oxford: Oxford University Press, 1998).
^ J. Dibble. Charles Villiers Stanford: man and musician (Oxford: Oxford University Press, 2002).
^ van der Merwe, Peter, Roots of the classical: the popular origins of western music (Oxford: Oxford University Press, 2004), p. 361.
^ B. Sweers, Electric Folk: The Changing Face of English Traditional Music (Oxford: Oxford University Press, 2005), p. 47.
^ J. N. Moore, Edward Elgar: a Creative Life (Oxford: Oxford University Press, 1999), p. 91.
^ M. Gardiner, Modern Scottish Culture (Edinburgh: Edinburgh University Press, 2005), p. 196.
^ M. McCarthy. Passing it on: the transmission of music in Irish culture (Cork: Cork University Press, 1999), pp. 108-9.
^ M. Kennedy, Portrait of Walton (Oxford: Oxford University Press, 1989).
^ D. Matthews, Britten (Haus Publishing, 2003).
^ J. R. Doctor, The BBC and ultra-modern music, 1922-1936: shaping a nation's tastes (Cambridge: Cambridge University Press, 1999).
^ T. Knighton and D. Fallows, Companion to Medieval and Renaissance Music (University of California Press, 1997), p. 428.
^ a b B. Sheerman, ed., The future sustainability of the higher education sector: international aspects, eighth report of session 2006-07, Vol. 2: Oral and written evidence (London: HM The Stationery Office, 2007), p. 346.
^ D. Clark and J. Staines, Classical music: the rough guide (London: Rough Guides, 2001).
Peter Gammond (1996), The Encyclopedia of Classical Music, Salamander Books, ISBN 0-86101-400-6
Percy A. Scholes (1970), The Oxford Companion to Music, Tenth Edition, Oxford University press.
Classical composer biographies at University of Cambridge
The British Library Sound Archive — Classical music
Retrieved from "https://en.wikipedia.org/w/index.php?title=Classical_music_of_the_United_Kingdom&oldid=920109590"


text:
use std::fs::File;
use std::io::Read;
use std::path::Path;
use std::str::FromStr;
use utils::*;
use obj::*;
use xml::Element;
use xml::Xml::{ElementNode, CharacterNode};
use xml;
use {Animation, BindDataSet, BindData, Skeleton, Joint, VertexWeight, JointIndex, ROOT_JOINT_PARENT_INDEX, mat4_id};

macro_rules! try_some {
    ($e:expr) => (match $e { Some(s) => s, None => return None })
}

macro_rules! try_some_with_error {
    ($e:expr, $msg:expr) => (
        match $e {
            Some(s) => s,
            None => {
                error!($msg);
                return None
            }
        }
    )
}

pub struct ColladaDocument {
    pub root_element: xml::Element
    // TODO figure out how to cache skeletal and skinning data, as we need to
    // access them multiple times
}

impl ColladaDocument {

    ///
    /// Construct a ColladaDocument for the XML document at the given path
    ///
    pub fn from_path(path: &Path) -> Result<ColladaDocument, &'static str> {
        let file_result = File::open(path);

        let mut file = match file_result {
            Ok(file) => file,
            Err(_) => return Err("Failed to open COLLADA file at path.")
        };

        let mut xml_string = String::new();
        match file.read_to_string(&mut xml_string) {
            Ok(_) => {},
            Err(_) => return Err("Failed to read COLLADA file.")
        };

        match xml_string.parse() {
            Ok(root_element) => Ok(ColladaDocument{root_element: root_element}),
            Err(_) => Err("Error while parsing COLLADA document."),
        }
    }

    ///
    /// Return a vector of all Animations in the Collada document
    ///
    pub fn get_animations(&self) -> Vec<Animation> {
        info!("Loading animations from COLLADA document...");
        match self.root_element.get_child("library_animations", self.get_ns()) {
            Some(library_animations) => {
                let animations = library_animations.get_children("animation", self.get_ns());
                animations.filter_map(|a| self.get_animation(a)).collect()
            }
            None => {
                info!("No animations found in COLLADA document.");
                Vec::new()
            }
        }
    }

    ///
    /// Construct an Animation struct for the given <animation> element if possible
    ///
    fn get_animation(&self, animation_element: &Element) -> Option<Animation> {

        let channel_element = try_some_with_error!(
            animation_element.get_child("channel", self.get_ns()),
            "Missing channel element in animation element"
        );

        let target = try_some_with_error!(
            channel_element.get_attribute("target", None),
            "Missing target attribute in animation channel element"
        );

        let sampler_element = try_some_with_error!(
            animation_element.get_child("sampler", self.get_ns()),
            "Missing sampler element in animation element"
        );

        // Note: Assuming INPUT for animation is 'time'
        let time_input = try_some_with_error!(
            self.get_input(sampler_element, "INPUT"),
            "Missing input element for animation INPUT (sample time)"
        );

        let sample_times = try_some_with_error!(
            self.get_array_for_input(animation_element, time_input),
            "Missing / invalid source for animation INPUT"
        );

        // Note: Assuming OUTPUT for animation is a pose matrix
        let pose_input = try_some_with_error!(
            self.get_input(sampler_element, "OUTPUT"),
            "Missing input element for animation OUTPUT (pose transform)"
        );

        let sample_poses_flat = try_some_with_error!(
            self.get_array_for_input(animation_element, pose_input),
            "Missing / invalid source for animation OUTPUT"
        );

        // Convert flat array of floats into array of matrices
        let sample_poses = to_matrix_array(sample_poses_flat);

        Some(Animation {
            target: target.to_string(),
            sample_times: sample_times,
            sample_poses: sample_poses
        })
    }

    ///
    /// Populate and return an ObjSet for the meshes in the Collada document
    ///
    pub fn get_obj_set(&self) -> Option<ObjSet> {
        let library_geometries = try_some!(self.root_element.get_child("library_geometries", self.get_ns()));
        let geometries = library_geometries.get_children("geometry", self.get_ns());
        let objects = geometries.filter_map( |g| { self.get_object(g) }).collect();

        Some(ObjSet{
            material_library: None,
            objects: objects,
        })
    }

    ///
    /// Populate and return a BindDataSet from the Collada document
    ///
    pub fn get_bind_data_set(&self) -> Option<BindDataSet> {
        let library_controllers = try_some!(self.root_element.get_child("library_controllers", self.get_ns()));
        let controllers = library_controllers.get_children("controller", self.get_ns());
        let bind_data = controllers.filter_map( |c| { self.get_bind_data(c) }).collect();
        Some(BindDataSet{ bind_data: bind_data })
    }

    ///
    ///
    ///
    pub fn get_skeletons(&self) -> Option<Vec<Skeleton>> {
        let library_visual_scenes = try_some!(self.root_element.get_child("library_visual_scenes", self.get_ns()));
        let visual_scene = try_some!(library_visual_scenes.get_child("visual_scene", self.get_ns()));

        let bind_data_set = try_some!(self.get_bind_data_set());

        let skeleton_ids: Vec<&str> = pre_order_iter(visual_scene)
            .filter(|e| e.name == "skeleton")
            .filter_map(|s| if let CharacterNode(ref id) = s.children[0] { Some(&id[..]) } else { None })
            .map(|id| id.trim_left_matches('#'))
            .collect();

        let skeletons = pre_order_iter(visual_scene)
            .filter(|e| e.name == "node")
            .filter(|e| has_attribute_with_value(e, "id", skeleton_ids[0]))
            .filter_map(|e| self.get_skeleton(e, &bind_data_set.bind_data[0]))
            .collect();

        Some(skeletons)
    }

    fn get_skeleton(&self, root_element: &Element, bind_data: &BindData) -> Option<Skeleton> {

        let mut parent_index_stack: Vec<JointIndex> = vec![ROOT_JOINT_PARENT_INDEX];
        let mut joints = Vec::new();
        let mut bind_poses = Vec::new();

        for (joint_index, (joint_element, depth)) in pre_order_with_depth_iter(root_element)
            .filter(|&(e, _)| e.name == "node" && has_attribute_with_value(e, "type", "JOINT"))
            .enumerate()
        {
            // If our depth decreases after visiting a leaf node, pop indices off the stack
            // until it matches our depth
            while depth < parent_index_stack.len() - 1 {
                parent_index_stack.pop();
            }

            let joint_name = joint_element.get_attribute("id", None).unwrap().to_string();

            let mut joint_names_with_bind_pose = bind_data.joint_names.iter().zip(bind_data.inverse_bind_poses.iter());
            let inverse_bind_pose = match joint_names_with_bind_pose.find(|&(name, _)| *name == joint_name) {
                Some((_, pose))  => *pose,
                _                => mat4_id(),
            };

            joints.push(Joint {
                inverse_bind_pose: inverse_bind_pose,
                name: joint_name,
                parent_index: *parent_index_stack.last().unwrap(),
            });

            let pose_matrix_element = try_some!(joint_element.get_child("matrix", self.get_ns()));
            let pose_matrix_array = try_some!(get_array_content(pose_matrix_element));
            let mut pose_matrix = mat4_id();
            for (&array_value, matrix_value) in pose_matrix_array.iter().zip(pose_matrix.iter_mut().flat_map(|n| n.iter_mut())) {
                *matrix_value = array_value;
            }

            bind_poses.push(pose_matrix);

            parent_index_stack.push(joint_index as JointIndex);
        }

        Some(Skeleton {
            joints: joints,
            bind_poses: bind_poses,
        })
    }

    fn get_bind_data(&self, controller_element: &xml::Element) -> Option<BindData> {

        let skeleton_name = try_some!(controller_element.get_attribute("name", None));
        let skin_element = try_some!(controller_element.get_child("skin", self.get_ns()));
        let object_name = try_some!(skin_element.get_attribute("source", None)).trim_left_matches('#');

        let vertex_weights_element = try_some!(skin_element.get_child("vertex_weights", self.get_ns()));
        let vertex_weights = try_some!(self.get_vertex_weights(vertex_weights_element));

        let joints_element = try_some!(skin_element.get_child("joints", self.get_ns()));

        let joint_input = try_some!(self.get_input(joints_element, "JOINT"));
        let joint_names = try_some!(self.get_array_for_input(skin_element, joint_input));

        let weights_input = try_some!(self.get_input(vertex_weights_element, "WEIGHT"));
        let weights = try_some!(self.get_array_for_input(skin_element, weights_input));

        let inv_bind_matrix_input = try_some!(self.get_input(joints_element, "INV_BIND_MATRIX"));

        let inverse_bind_poses = to_matrix_array(
            try_some!(self.get_array_for_input(skin_element, inv_bind_matrix_input))
        );

        Some(BindData{
            object_name: object_name.to_string(),
            skeleton_name: skeleton_name.to_string(),
            joint_names: joint_names,
            inverse_bind_poses: inverse_bind_poses,
            weights: weights,
            vertex_weights: vertex_weights
        })
    }

    fn get_vertex_weights(&self, vertex_weights_element: &xml::Element) -> Option<Vec<VertexWeight>> {

        let joint_index_offset = try_some!(self.get_input_offset(vertex_weights_element, "JOINT"));
        let weight_index_offset = try_some!(self.get_input_offset(vertex_weights_element, "WEIGHT"));

        let vcount_element = try_some!(vertex_weights_element.get_child("vcount", self.get_ns()));
        let weights_per_vertex: Vec<usize> = try_some!(get_array_content(vcount_element));
        let input_count = vertex_weights_element.get_children("input", self.get_ns()).count();

        let v_element = try_some!(vertex_weights_element.get_child("v", self.get_ns()));
        let joint_weight_indices: Vec<usize> = try_some!(get_array_content(v_element));
        let mut joint_weight_iter = joint_weight_indices.chunks(input_count);

        let mut vertex_indices: Vec<usize> = Vec::new();
        for (index, n) in weights_per_vertex.iter().enumerate() {
            for _ in (0 .. *n) {
                vertex_indices.push(index);
            }

        }

        let vertex_weights = vertex_indices.iter().filter_map( |vertex_index| {
            match joint_weight_iter.next() {
                Some(joint_weight) => {
                    Some(VertexWeight {
                        vertex: *vertex_index,
                        joint: joint_weight[joint_index_offset] as JointIndex,
                        weight: joint_weight[weight_index_offset],
                    })
                }
                None => None
            }
        }).collect();

        Some(vertex_weights)
    }

    fn get_object(&self, geometry_element: &xml::Element) -> Option<Object> {

        let id = try_some!(geometry_element.get_attribute("id", None));
        let mesh_element = try_some!(geometry_element.get_child("mesh", self.get_ns()));
        let shapes = try_some!(self.get_shapes(mesh_element));

        // TODO cache bind_data_set
        let bind_data_set = try_some!(self.get_bind_data_set()); // FIXME -- might not actually have bind data
        let bind_data_opt = bind_data_set.bind_data.iter().find(|bind_data| bind_data.object_name == id);

        let polylist_element = try_some!(mesh_element.get_child("polylist", self.get_ns()));

        let positions_input = try_some!(self.get_input(polylist_element, "VERTEX"));
        let positions_array = try_some!(self.get_array_for_input(mesh_element, positions_input));
        let positions: Vec<_> = positions_array.chunks(3).map(|coords| {
            Vertex {
                x: coords[0],
                y: coords[1],
                z: coords[2],
            }
        }).collect();

        let normals = {
            match self.get_input(polylist_element, "NORMAL") {
                Some(normals_input) => {
                    let normals_array = try_some!(self.get_array_for_input(mesh_element, normals_input));
                    normals_array.chunks(3).map(|coords| {
                        Normal {
                            x: coords[0],
                            y: coords[1],
                            z: coords[2],
                        }
                    }).collect()
                }
                None => Vec::new()
            }
        };

        let texcoords = {
            match self.get_input(polylist_element, "TEXCOORD") {
                Some(texcoords_input) => {
                    let texcoords_array = try_some!(self.get_array_for_input(mesh_element, texcoords_input));
                    texcoords_array.chunks(2).map(|coords| {
                        TVertex {
                            x: coords[0],
                            y: coords[1],
                        }
                    }).collect()
                }
                None => Vec::new()
            }
        };

        // TODO cache! also only if any skeleton
        let skeleton = &self.get_skeletons().unwrap()[0];

        let joint_weights = if let Some(bind_data) = bind_data_opt {
            // Build an array of joint weights for each vertex
            // Initialize joint weights array with no weights for any vertex
            let mut joint_weights = vec![JointWeights { joints: [0; 4], weights: [0.0; 4] }; positions.len()];
            for vertex_weight in bind_data.vertex_weights.iter() {

                let joint_name = &bind_data.joint_names[vertex_weight.joint as usize];

                let vertex_joint_weights: &mut JointWeights = &mut joint_weights[vertex_weight.vertex];
                if let Some((next_index, _)) = vertex_joint_weights.weights.iter().enumerate().find(|&(_, weight)| *weight == 0.0) {

                    if let Some((joint_index, _)) = skeleton.joints.iter().enumerate()
                        .find(|&(_, j)| &j.name == joint_name) {
                        vertex_joint_weights.joints[next_index] = joint_index;
                        vertex_joint_weights.weights[next_index] = bind_data.weights[vertex_weight.weight];
                    }
                    else {
                        error!("Couldn't find joint: {}", joint_name);
                    }

                } else {
                    error!("Too many joint influences for vertex");
                }
            }
            joint_weights
        } else {
            Vec::new()
        };

        Some(Object {
            name: id.to_string(),
            vertices: positions,
            tex_vertices: texcoords,
            normals: normals,
            joint_weights: joint_weights,
            geometry: vec![Geometry {
                material_name: None,
                smooth_shading_group: 0,
                shapes: shapes,
            }],
        })
    }

    fn get_ns(&self) -> Option<&str> {
        match self.root_element.ns {
            Some(ref ns) => Some(&ns[..]),
            None => None,
        }
    }

    fn get_input_offset(&self, parent_element: &xml::Element, semantic : &str) -> Option<usize> {
        let mut inputs = parent_element.get_children("input", self.get_ns());
        let input = try_some!(inputs.find( |i| {
            if let Some(s) = i.get_attribute("semantic", None) {
                s == semantic
            } else {
                false
            }
        }));
        try_some!(input.get_attribute("offset", None)).parse::<usize>().ok()
    }

    fn get_input<'a>(&'a self, parent: &'a Element, semantic : &str) -> Option<&'a Element> {
        let mut inputs = parent.get_children("input", self.get_ns());
        match inputs.find( |i| {
            if let Some(s) = i.get_attribute("semantic", None) { s == semantic } else { false }
        })
        {
            Some(e) => Some(e),
            None => None,
        }
    }

    fn get_input_source<'a>(&'a self, parent_element: &'a xml::Element, input_element: &'a xml::Element) -> Option<&'a xml::Element> {
        let source_id = try_some!(input_element.get_attribute("source", None));

        if let Some(element) = parent_element.children.iter()
            .filter_map(|node| { if let &xml::Xml::ElementNode(ref e) = node { Some(e) } else { None } })
            .find(|e| {
                if let Some(id) = e.get_attribute("id", None) {
                    let id = "#".to_string() + id;
                    id == source_id
                } else {
                    false
                }
            })
        {
            if element.name == "source" {
                return Some(element);
            } else {
                let input = try_some!(element.get_child("input", self.get_ns()));
                return self.get_input_source(parent_element, input);
            }
        }
        None
    }

    fn get_array_for_input<T: FromStr>(&self, parent: &Element, input: &Element) -> Option<Vec<T>> {
        let source = try_some!(self.get_input_source(parent, input));
        let array_element = try_some!{
            if let Some(float_array) = source.get_child("float_array", self.get_ns()) {
                Some(float_array)
            } else if let Some(name_array) = source.get_child("Name_array", self.get_ns()) {
                Some(name_array)
            } else {
                None
            }
        };
        get_array_content(array_element)
    }

    fn get_vtn_indices(&self, mesh_element: &xml::Element) -> Option<Vec<VTNIndex>> {

        let polylist_element = try_some!(mesh_element.get_child("polylist", self.get_ns()));
        let p_element = try_some!(polylist_element.get_child("p", self.get_ns()));
        let indices: Vec<usize> = try_some!(get_array_content(p_element));

        let input_count = polylist_element.get_children("input", self.get_ns()).count();

        let position_offset = try_some!(self.get_input_offset(polylist_element, "VERTEX"));

        let normal_offset_opt = self.get_input_offset(polylist_element, "NORMAL");
        let texcoord_offset_opt = self.get_input_offset(polylist_element, "TEXCOORD");

        let vtn_indices: Vec<VTNIndex> = indices.chunks(input_count).map( |indices| {
            let position_index = indices[position_offset];

            let normal_index_opt = match normal_offset_opt {
                Some(normal_offset) => Some(indices[normal_offset]),
                None => None
            };

            let texcoord_index_opt = match texcoord_offset_opt {
                Some(texcoord_offset) => Some(indices[texcoord_offset]),
                None => None
            };

            (position_index, texcoord_index_opt, normal_index_opt)
        }).collect();

        Some(vtn_indices)
    }

    fn get_shapes(&self, mesh_element: &xml::Element) -> Option<Vec<Shape>> {

        let vtn_indices = try_some!(self.get_vtn_indices(mesh_element));

        let polylist_element = try_some!(mesh_element.get_child("polylist", self.get_ns()));
        let vcount_element = try_some!(polylist_element.get_child("vcount", self.get_ns()));
        let vertex_counts: Vec<usize> = try_some!(get_array_content(vcount_element));

        let mut vtn_iter = vtn_indices.iter();
        let shapes = vertex_counts.iter().map(|vertex_count| {
            match *vertex_count {
                1 => Shape::Point(*vtn_iter.next().unwrap()),
                2 => Shape::Line(*vtn_iter.next().unwrap(), *vtn_iter.next().unwrap()),
                3 => Shape::Triangle(*vtn_iter.next().unwrap(), *vtn_iter.next().unwrap(), *vtn_iter.next().unwrap()),
                n => {
                    // Polys with more than 3 vertices not supported - try to advance and continue
                    // TODO attempt to triangle-fy? (take a look at wavefront_obj)
                    for _ in (0 .. n) { vtn_iter.next(); };
                    Shape::Point((0, None, None))
                }
            }
        }).collect();

        Some(shapes)
    }
}

#[test]
fn test_get_obj_set() {
    let collada_document = ColladaDocument::from_path(&Path::new("test_assets/test.dae")).unwrap();
    let obj_set = collada_document.get_obj_set().unwrap();
    assert_eq!(obj_set.objects.len(), 1);

    let ref object = obj_set.objects[0];
    assert_eq!(object.name, "BoxyWorm-mesh");
    assert_eq!(object.vertices.len(), 16);
    assert_eq!(object.tex_vertices.len(), 84);
    assert_eq!(object.normals.len(), 28);
    assert_eq!(object.geometry.len(), 1);

    let ref geometry = object.geometry[0];
    assert_eq!(geometry.shapes.len(), 28);

    let ref shape = geometry.shapes[1];
    if let &Shape::Triangle((position_index, Some(texture_index), Some(normal_index)), _, _) = shape {
        assert_eq!(position_index, 7);
        assert_eq!(texture_index, 3);
        assert_eq!(normal_index, 1);
    } else {
        assert!(false);
    }
}

#[test]
fn test_get_bind_data_set() {
    let collada_document = ColladaDocument::from_path(&Path::new("test_assets/test.dae")).unwrap();
    let bind_data_set = collada_document.get_bind_data_set().unwrap();
    let bind_data = &bind_data_set.bind_data[0];

    assert_eq!(bind_data.object_name, "#BoxyWorm-mesh"); // FIXME
    assert_eq!(bind_data.skeleton_name, "BoxWormRoot"); // FIXME
    assert_eq!(bind_data.joint_names, ["Root", "UpperArm", "LowerArm"]);
    assert_eq!(bind_data.vertex_weights.len(), 29);
    assert_eq!(bind_data.weights.len(), 29);
    assert_eq!(bind_data.inverse_bind_poses.len(), 3);
}

#[test]
fn test_get_skeletons() {
    let collada_document = ColladaDocument::from_path(&Path::new("test_assets/test.dae")).unwrap();
    let skeletons = collada_document.get_skeletons().unwrap();
    assert_eq!(skeletons.len(), 1);

    let skeleton = &skeletons[0];
    assert_eq!(skeleton.joints.len(), 4);
    assert_eq!(skeleton.bind_poses.len(), 4);

    assert_eq!(skeleton.joints[0].name, "Root");
    assert_eq!(skeleton.joints[0].parent_index, (0 as JointIndex) - 1);
    assert!(skeleton.joints[0].inverse_bind_pose != mat4_id());

    assert_eq!(skeleton.joints[1].name, "UpperArm");
    assert_eq!(skeleton.joints[1].parent_index, 0);
    assert!(skeleton.joints[1].inverse_bind_pose != mat4_id());

    assert_eq!(skeleton.joints[2].name, "UpperArmDanglyBit");
    assert_eq!(skeleton.joints[2].parent_index, 1);
    assert_eq!(skeleton.joints[2].inverse_bind_pose, mat4_id());

    assert_eq!(skeleton.joints[3].name, "LowerArm");
    assert_eq!(skeleton.joints[3].parent_index, 0);
    assert!(skeleton.joints[3].inverse_bind_pose != mat4_id());
}

#[test]
fn test_get_animations() {
    let collada_document = ColladaDocument::from_path(&Path::new("test_assets/test.dae")).unwrap();
    let animations = collada_document.get_animations();
    assert_eq!(animations.len(), 4);

    let ref animation = animations[1];
    assert_eq!(animation.target, "UpperArm/transform");
    assert_eq!(animation.sample_times.len(), 4);
    assert_eq!(animation.sample_poses.len(), 4);

    let ref animation = animations[3];
    assert_eq!(animation.target, "LowerArm/transform");
    assert_eq!(animation.sample_times.len(), 4);
    assert_eq!(animation.sample_poses.len(), 4);
}

redpajama_set_name: RedPajamaGithub


[Bug 85153] Re: Increase text button should be left to decrease text	button.
** Changed in: gnome-screensaver (upstream) Status: Invalid = Won't Fix -- please include time and date in unlock dialog https://bugs.launchpad.net/bugs/78922 You received this bug notification because you are a member of Ubuntu Desktop Bugs, which is the registrant for gnome-screensaver.
[Bug 31792] Re: Feature: Add the ability to include all conversation	in specific channels in the notification bubble.
** Changed in: sound-juicer (upstream) Status: Invalid = Won't Fix -- Custom CD Information not stored consistently across GNOME Desktop https://bugs.launchpad.net/bugs/17983 You received this bug notification because you are a member of Ubuntu Desktop Bugs, which is a direct subscriber.
[Bug 120162] Re: Unable to click and drag picture with mouse -	regression.
[Bug 26024] Re: Print selection doesn't work.
[Bug 113086] Re: Enabling Desktop Effects,	some part of firefox and thunderbird windows are black for few	seconds when I deminimize them.
** Changed in: firefox (upstream) Status: Unknown = Confirmed ** Changed in: wow-pro (upstream) Status: New = Confirmed -- Enabling Desktop Effects, some part of firefox and thunderbird windows are black for few seconds when I deminimize them.


An insurance company can be liable for malicious prosecution when it wrongfully tries to have its insured or another person charged with a crime.
In one recent example, we obtained $4 million in punitive damages for a State Farm policyholder whose car was stolen from her driveway. The car was later found abandoned and destroyed; the theft was investigated by two law enforcement agencies, neither of which found the owner was to blame. State Farm and its Special Investigative Unit subsequently conducted their own investigation, and accused the owner and her brother-in-law of insurance fraud. It was later discovered that State Farm's investigator threatened an independent witness to solicit perjury, concealed and disregarded clear exculpatory evidence, and reported false information.
The insurer provided its investigation to the prosecutor in Johnson County, Kansas, and the owner and her brother-in-law were charged with felony insurance fraud. Both were acquitted after a 10-day criminal trial – but State Farm continued to deny the claim.
After the acquittals, Bartimus Frickleton Robertson Rader pursued a malicious prosecution bad faith claim on behalf of the owner and her brother-in-law. After a three-week trial, the jury returned a verdict for the plaintiffs on all counts. Our clients received actual damages, attorneys' fees and $4 million each in punitive damages.
Bartimus Frickleton Robertson Rader works tirelessly for those who have been wrongfully charged without probable cause by insurance companies.


Food & Freedom…what's not to love about this topic? This will be an enlightening conversation and will also provide an opportunity to meet some of your local farmers.
Michael Wieland of Sloth Acres will share with us how he discovered liberty through cheesesteak sandwiches and the positive impacts local food can have on health, happiness, and individual liberty.
This entry was posted in LOT Event, Monthly Gathering, Monthly meeting and tagged Farmer's Markets, Food and Freedom, July Gathering, July Meeting, Liberty, Liberty on Tap, Local Farming, Oklahoma, Tulsa. Bookmark the permalink.


HONOLULU — The Department of Land and Natural Resources (DLNR) is inviting applications from interested persons to become members of an advisory committee for the Forest Stewardship Program.
The Forest Stewardship Advisory Committee (FSAC) will have several open seats in early 2014 and is making applications available for anyone who is interested in applying.
The Forest Stewardship Advisory Committee reviews and recommends for approval all project proposals and management plans for the state's Forest Stewardship and Forest Legacy Programs.
Ideal candidates are those with significant forestry and/or conservation experience in Hawai'i. The Committee meets four times a year in venues throughout Hawai'i and appointments are for three years.
Please visit http://dlnr.hawaii.gov/forestry/lap/fsp/ to download the application and learn more about the Forest Stewardship and Forest Legacy Programs in Hawai'i.
For more information please contact Irene Sprecher at DLNR-Division of Forestry and Wildlife, (808) 587-4167, or email Melissa.I.Sprecher@hawaii.gov.
Applications are due by December 31, 2013.


text:
Vishwanath Das Shastri is an Indian politician.  He was elected to the Lok Sabha, the lower house of the Parliament of India from the Sultanpur, Uttar Pradesh as a member of the Bharatiya Janata Party.

References

External links
Official biographical sketch in Parliament of India website

India MPs 1991–1996
Lok Sabha members from Uttar Pradesh
Bharatiya Janata Party politicians from Uttar Pradesh
1950 births
Living people

redpajama_set_name: RedPajamaWikipedia


On April 11-17, at the University of Innopolis, as many as 256 participants from 56 regions of Russian will compete at the All-Russian School Olympiad in Informatics and Information and Communication Technologies (ICT).
The Internet of things and Artificial intelligence World Summit Russia will be held in Kazan on October 1-2, 2019.
Tatarstan Ministry of Informatization and Communication informs Tatarstan citizens that maintenance works will be carried out in the republic on April 8-9.
Qualifying competitions in IT competences among the winners of the regional stages of the Young Professionals Worldskills 2019 National Championship are held these days in Moscow, Ufa and the Tomsk region. The participants are competing for the right to take part in the final, to be held in Kazan in May. Participants from Tatarstan are also taking part in the competitions.
On April 3, during his working visit to the Kingdom of the Netherlands as a member of Tatarstan, at a round table with business representatives of the Netherlands, Deputy Prime Minister of the republic – Tatarstan Minister of Information and Communications Roman Shaykhutdinov introduced the innovative potential of Tatarstan.
On April 1, Deputy Prime Minister of the republic – Tatarstan Minister of Informatization and Communications Roman Shaykhutdinov arrived on a working visit in the Kingdom of the Netherlands, during which he will visit the city of Amsterdam and Eindhoven.


text:
Der Kanton Grand Bourgtheroulde (früher Bourgtheroulde-Infreville) ist ein französischer Wahlkreis im Arrondissement Bernay, im Département Eure und in der Region Normandie; sein Hauptort ist Grand Bourgtheroulde, Vertreter im Generalrat des Départements ist seit 2001 Jean Guenier.

Der Kanton Grand Bourgtheroulde liegt im Mittel auf 133 Meter über dem Meeresspiegel, zwischen 60 m in Saint-Ouen-du-Tilleul und 173 m in Bosguérard-de-Marcouville.

Gemeinden
Der Kanton besteht aus 25 Gemeinden mit insgesamt  Einwohnern (Stand: ) auf einer Gesamtfläche von  km²:

Bis zur Neuordnung bestand der Kanton Bourgtheroulde-Infreville aus den 18 Gemeinden Berville-en-Roumois, Boissey-le-Châtel, Bosc-Bénard-Commin, Bosc-Bénard-Crescy, Bosc-Renoult-en-Roumois, Le Bosc-Roger-en-Roumois, Bosguérard-de-Marcouville, Bosnormand, Bourgtheroulde-Infreville, Épreville-en-Roumois, Flancourt-Catelon, Saint-Denis-des-Monts, Saint-Léger-du-Gennetey, Saint-Ouen-du-Tilleul, Saint-Philbert-sur-Boissey, Theillement, Thuit-Hébert und Voiscreville. Sein Zuschnitt entsprach einer Fläche von 102,95 km2.

Veränderungen im Gemeindebestand seit der landesweiten Neuordnung der Kantone
2018:
 Fusion Thénouville und Touville (Kanton Pont-Audemer)  → Thénouville

2017:
 Fusion Bosnormand und Le Bosc-Roger-en-Roumois → Bosroumois
 Fusion Berville-en-Roumois, Bosguérard-de-Marcouville  und Houlbec-près-le-Gros-Theil  → Les Monts du Roumois
 Fusion Bosc-Renoult-en-Roumois und Theillement → Thénouville

2016:
 Fusion Amfreville-la-Campagne und Saint-Amand-des-Hautes-Terres → Amfreville-Saint-Amand
 Fusion Bosc-Bénard-Crescy, Épreville-en-Roumois und Flancourt-Catelon → Flancourt-Crescy-en-Roumois
 Fusion Bosc-Bénard-Commin, Bourgtheroulde-Infreville und Thuit-Hébert → Grand Bourgtheroulde
 Fusion Le Thuit-Anger, Le Thuit-Signol und Le Thuit-Simer → Le Thuit de l'Oison

Bevölkerungsentwicklung

Weblinks

 Kanton Bourgtheroulde-Infreville auf der Website des Insee
 Lokalisation des Kantons Bourgtheroulde-Infreville auf einer Frankreichkarte

Kanton im Département Eure


Box framed canvas ready to hang on wall. Printed using fade resistant genuine Epson ultrachrome K3 ink, stretched around a solid 32mm deep wooden frame, stapled and finished with a brown framing tape on the back. Please note actual colours may vary slightly from the colour on your screen due to monitor colour restrictions.


text:
ESPN Honolulu Scrapbook #11
The year 2015 was an eventful one for Hawaii sports fans. The University of Hawaii football team struggled through a dismal season, leading to Norm Chow's dismissal and the hiring of Nick Rolovich as his replacement. The Rainbow Warrior basketball team, meanwhile, got off to a promising start under first-year head coach Eran Ganot (the season would culminate with the program's first-ever victory in the NCAA Tournament). And at ESPN Honolulu, we had a full year of fun events, great promotions and exciting opportunities to be involved in our community. Here are some snapshots of the year that was:
December 2015: A clean-shaven Nick Rolovich is all smiles with ESPN Honolulu's Bobby Curran. This photo was taken at a "Call the Coach" show at the Pagoda – Rolo's first public event since being named the new UH football head coach.
April 2015: Digital Media Manager Ku'ulei Agbayani holds up a beautiful full-color photo signed by Heisman Trophy winner Marcus Mariota. We give away the best prizes!
August 2015: The Sports Animals (Chris Hart and Gary Dickman) share a moment with Miss Hawaii Teen USA, Kyla Hee. Kyla is now a professional model based in New York.
December 2015: Laura Beeman and the Rainbow Wahine basketball team had a blast at their "Hoopla" fundraiser at the Hukilau in downtown Honolulu.
September 2015: We did an interview with standout UH golfer Eimi Koga. Eimi is now playing professionally in the LPGA Tour in Japan.
August 2015: Bobby Curran and Gary Dickman teamed up for the NAPA Auto Parts Ultimate Sports Trivia "Celebrity Challenge."
January 2015: Our ESPN Honolulu crew at our first ESPN Jersey Fun Run event at Aloha Stadium!

redpajama_set_name: RedPajamaCommonCrawl


ERYC SACRE East Riding of Yorkshire Council Standing Advisory Council for Religious Education. HERHG member co-opted.
HERI Hull and East Riding Interfaith. HERHG is a supporting organisation.
Hull City Council SACRE BHA member full member of Standing Advisory Council on Religious Education.
Humanist Society of West Yorkshire BHA Affiliated Humanist society based in Leeds.
North East Humanists The largest Humanist society in the UK, based in Newcastle.
North Yorkshire Humanist Group BHA Affiliated Humanist group based in York.
The Pod Delusion Humanist podcasters. Very polished and professional site.
If you would like to ask a question about Humanism, atheism, secularism, scepticism or agnosticism, please click on the image above.


Below are ways to change the AF range frame position.
Change by pressing the Fn button.
Select Focus Area - Flexible Spot.
Change by allocating Flexible Spot to the center button of the control wheel.
By changing the allocation to Standard, you can easily adjust the AF range frame by pressing the center button.
To change the allocation to Standard, press Menu - Custom setting - Custom key setting - Center button.


text:
FC Barcelona 2013-14 Season in Review: Gerard Pique
Recap of Gerard Pique's 2013-14 season.
By Bostjan Cernensek@bcernensek Jun 14, 2014, 10:00am CEST
Share All sharing options for: FC Barcelona 2013-14 Season in Review: Gerard Pique
Manuel Queimadelos Alonso
Report: After a disappointing 2012-13 season Gerard Pique had a very solid bounce-back year. If only he could've stayed healthy over the later part of the season it could've been a great year for Pique.
He started the year in good form, playing strong football defensively. Consistently he was in the perfect position to make the necessary play, saving Victor Valdes a couple trips to the back of the net. But regardless of the aforementioned consistency Pique continuously irritated coaches and fans alike when in certain games he didn't appear to bring the necessary energy and drive to be a successful player at this level. It appeared like he became complacent against "lesser" opponents.
But boy did Pique show up for the big games. I'm talking about matches against the top two Madrid clubs and in the Champions League. He was making plays left, right and middle and he even got involved on offense, scoring two goals in just over 700 minutes in the Champions League.
But despite all the positives Pique displayed on the pitch, he too, like many Barcelona players this season, struggled to stay healthy throughout the year. He picked up a nagging hamstring injury in late October that limited his action over the coming month, six weeks as he rarely appeared in consecutive games.
As the season progressed Pique appeared to finally put that ailment behind him, though Gerardo Martino still occasionally kept Pique out of squad completely as a precaution. That was especially noticeable in the Copa del Rey where Pique made only two appearances, both in the Semi-Final.
But when Barcelona needed him the most, in the last two months of the season, Pique was forced to watch from the sidelines. Disaster struck on 1 April in the first leg of the Champions League Quarter-Final against Atletico Madrid when early in the game Pique landed awkwardly in a jump with Diego Costa, injuring his hip in the process.
The Barcelona center-back worked tirelessly to return to the pitch before the end of the season and he managed just that, recovering in time for the title decider against Atletico. But even with his boost Barcelona were unable to retain the title.
All those injuries also hurt Pique on the international stage as he made just a single appearance for La Furia Roja over the last 12 months, and even in that one he only featured for one half.
Moment of the season: Pique impressed in several games this season, but in my opinion his best game came in the Champions League Group Stage match against Celtic. Pique was a beast defensively where he won nine out of ten air duels and saved a goal with a clearance off the line. And that was just one of fourteen clearances he made over the 90 minute match. The center-back also made an impact on the other side of the pitch as he scored the opening goal of the game.
FC Barcelona vs Celtic 6-1 All Goals & Highlights 11/12/13 HD (via gaye turabi)
Appearances 39
Started on the Bench
Substitute In 0
Substitute Out 4
Minutes Played 3524
Fouls Committed
Fouls Suffered
Record with Gerard Pique in the starting lineup: 26-8-5
2014-15 Outlook: Pique will look to build on the just completed season with an even better campaign, solidifying himself as the best central defender on the team. Pique will have to step up though with the emergence of Marc Bartra and the rumored addition of at least one center back. With a new contract signed just a few weeks ago expectations for Pique to perform at an elite level are high and regardless of any new signing he will have to meet them if Barcelona are to win any trophy.
Next Up: Marc Bartra
Follow @BlaugranesBarca Follow @SBNationSoccer
World Cup: Spain-Holland Match Review
FIFA World Cup: 13 June 2014; Live Thread
FC Barcelona News: 13 June 2014; Neymar Leads Brazil to Victory, Cesc Fabregas Sold to Chelsea
FC Barcelona 2013-14 Season in Review: Jose Manuel Pinto
World Cup: Brazil vs Croatia Match Review
Five talking points from Girona 0-1 Barcelona It's another win for Xavi's side
How many Barcelona games will Dembele miss with latest injury? The Frenchman was forced off against Girona
'We'll solve everything' - Alemany calm on Gavi and Araujo No need to panic....