text:
Journal of Genetic Psychology
Papers 4694
1 page of 470 pages (4,694 results)
The impact of children's lexical and morphosyntactic knowledge on narrative competence development: A prospective cohort study
Published on May 23, 2019in Journal of Genetic Psychology 0.92
Giuliana Pinto12
(University of Florence), Christian Tarchi7
(University of Florence), Lucia Bigozzi9
(University of Florence)
Animal Faux Pas: Two Legs Good Four Legs Bad for Theory of Mind, but Not in the Broad Autism Spectrum
Gray Atherton (University of Wolverhampton), Liam Cross2
Believe What I Believe: Correspondence Between the Beliefs of Young Adults and the Perceived Beliefs of Their Caregivers
Published on Apr 22, 2019in Journal of Genetic Psychology 0.92
Jennifer Vonk17
(University of Rochester), Virgil Zeigler-Hill14
(University of Rochester)+ 1 AuthorsChinmay Aradhye1
(University of Rochester)
AbstractLittle research has examined the mechanisms through which adult children adopt beliefs across a range of contexts. Through an online survey, the authors examined belief transmission via the correspondence between beliefs of 837 young adults and the perceived ideological beliefs of their caregivers as a function of attachment, parental behavior, and religious beliefs in four domains: moral, political, religious, and lifestyle. The strongest predictor of belief transmission across domains ... more
The Relative Impacts of Sibling Relationships on Adolescent Body Perceptions
Baylee A. Francka (University of Washington), Anna K. Lindell (University of Wisconsin–Whitewater), Nicole Campione-Barr12
(University of Missouri)
AbstractThe sibling relationship is the longest relationship of the life course and has been found to influence youth adjustment (Dunn, 2002). Given that adolescence is a time of increased body awareness, the authors examined the potential role of siblings' body conceptions and sibling relationship quality on adolescent body conceptions. In a sample of 101 predominantly White, middle-class adolescent sibling dyads, the authors found that positive sibling relationship quality was associated with ... more
Executive Function and Mental Rotation During Middle Childhood: The Effect of Age
Published on Mar 26, 2019in Journal of Genetic Psychology 0.92
Zhong-Hua He1
(Shaanxi University of Chinese Medicine), Bing-Hua Li (Huawei), Wen-Gang Yin1
(Chinese Academy of Sciences)
AbstractThe authors examined the relative contributions of three aspects of executive function with two-dimensional (2D) mental rotation in children between 8 and 12 years old. Participants were given one standard 2D mental rotation measure, two working memory tasks (Corsi blocks and digit span), two inhibitory control tasks (Stroop and go/no go), and two planning ability tests (Tower of Hanoi and Tower of London). The correlational patterns between executive function and 2D mental rotation were... more
Response patterns of young children from two contrasting SES contexts to different numerical tasks with numbers 1–5
Published on Jan 2, 2019in Journal of Genetic Psychology 0.92
Nora Scheuer12
(National Scientific and Technical Research Council), Eduardo Martí Sala7
(University of Barcelona)+ 1 AuthorsBárbara M. Brizuela12
(Tufts University)
AbstractThis study contributes to a multifaceted picture of young children's emergent number knowledge by focusing on the variety of ways in which children express and use quantitative information. The authors' aims are to (a) explore the extent to which quantifying collections 1–5 and using that information pose different levels of difficulty to children from 33 to 47 months old, (b) identify intra- and intertask response patterns, and (c) analyze the influence of socioeconomic status and age o... more
Shyness, Self-regulation, and Cognitive Problem Solving in Typically Developing 4-year-olds: A Pilot Study
Raha Hassan (McMaster University), Kimberly L. Day (University of West Florida)+ 1 AuthorsLouis A. Schmidt40
(McMaster University)
AbstractBecause shy children are at risk for poor academic achievement, it is important to examine factors that contribute to variability in the relation between individual differences in shyness and cognitive functioning before school entry. The authors examined whether on-task facilitative private speech—a proxy of self-regulation—moderated the association between individual differences in shyness and performance on an executive function (EF) task in 52 typically developing 4-year-olds. They f... more
Frequency and Intensity of Emotional Expressiveness and Preschool Children's Peer Competence
Eric W. Lindsey14
(Pennsylvania State University)
Temperament as Risk and Protective Factors in Obesogenic Eating: Relations Among Parent Temperament, Child Temperament, and Child Food Preference and Eating
Zhiqing Zhou (Texas A&M University), Michelle SooHoo1
(Texas A&M University)+ 2 AuthorsJeffrey Liew26
(Texas A&M University)
AbstractChildren's food preferences and eating behaviors have implications for their health and weight status, serving as risk or protective factors for obesity. Although parent and child factors influence children's eating, few studies have examined parent and child temperament simultaneously in relation to child food preference and eating behaviors. The authors addressed this research gap. Participants were 115 ethnically diverse children between 4 and 6 years old and their parents. Measures i... more
Children's Judgments of Cultural Expertise: The Influence of Cultural Status and Learning Method
Kimberly E. Marble1
(University of North Carolina at Greensboro), Janet J. Boseovski13
(University of North Carolina at Greensboro)
AbstractThe authors investigated children's use of cultural status (i.e., foreign vs. American) and learning method to evaluate informants' expertise in novel cultural practices. Ninety-six 6- to 9-year-olds heard about a foreign informant (i.e., member of an unfamiliar out-group) and an American informant (i.e., member of the participant's in-group) who each learned about a novel cultural practice differently (i.e., from a person vs. from a book). Participants decided which informant executed t... more
Top fields of study
PsychologySocial psychologyDevelopmental psychologyCognitionCognitive psychology


text:
Carol Sutton (29 de junio de 1933 - 19 de febrero de 1985) fue una periodista estadounidense.

Biografía
Sutton se graduó en periodismo en la Universidad de Misuri. En 1974 se convirtió en la primera editora sénior de un importante diario estadounidense, The Courier-Journal, en Louisville, Kentucky. Fue citada como un ejemplo del periodismo femenino cuando la revista Time la incluyó en su lista de las "mujeres estadounidenses del año" en 1975. Durante su permanencia en el periódico, se le concedió el Premio Penney-Missouri a la Excelencia General de 1971 y en 1976 el Premio Pulitzer de Fotografía de Reportajes por su cobertura de la desegregación escolar en Louisville.

En 1997 fue incluida en el Salón de la Fama de las mujeres de Kentucky. Falleció el 19 de febrero de 1985.

Referencias

Enlaces externos

Periodistas de Estados Unidos

redpajama_set_name: RedPajamaWikipedia


text:
THE ENVIRONMENT AND GREENHOUSE GAS EMISSIONS
We aim to minimise the lasting impact of our operations on the environment, and sustainability is a key feature of our products and their impact on the environment. See Our Sustainable Journey for further details of our sustainable solutions for the environment.
Our modern and efficient injection moulding and extrusion operations use significant amounts of electricity. We monitor very closely our electricity usage, even at a machine level, and take a proactive approach to improve energy efficiency. The Group collects and analyses electricity and natural gas usage information from each business unit on a monthly basis.
Greenhouse gas (GHG) emissions for the Group during 2018, in tonnes of carbon dioxide equivalent (tCO2e), were as follows:
tCO2e
– fuel combustion (stationary) 2,825 6
– fuel combustion (mobile) 14,853 31
– fugitive emissions (F-gas) 223 1
– purchase electricity 29,823 62
2017†
Total emissions 47,724 55,714 (14)%
Emissions intensity* 0.39 0.40 (4)%
† Restated to reflect the disposal of Polypipe France.
* Expressed in tCO2e per tonne of output.
Our GHG emissions were calculated using the methodology set out in the updated GHG reporting guidance issued in June 2013 by the Department for Environment, Food and Rural Affairs (DEFRA). Carbon emission factors were taken from the Department for Business, Energy and Industrial Strategy's 2018 update of GHG Conversion Factors for Company Reporting, with the exception of non-UK electricity, which were taken from the European Residual Mixes 2017: Association of Issuing Bodies.

redpajama_set_name: RedPajamaCommonCrawl


Rabbits are one of the most common animal that people chose to be their pet. Their little posture and cute faces is the main reasons why this animal was popular. A lot of people actually prefer to raise a little small posture animal such rabbits, hamsters, cats, birds and others – rather than a big one. Why? This is because they are easily maintained and compatible to raise in any size of places – whether it is a house, apartment, and even studio.
Also, these kind of animals are safe for our family, especially children – do you ever worried if your children playing with a rabbit (actually, the opposite of it – it is us who would worried about the rabbit)? The answer is no. Why? This is because we know exactly they would be safe around them. No need another explanation for it.
If we were a parent but at the same time we are a pet lover – we should wisely choose which animal breed that would friendly and safe enough for our children.
The other reason is the simplicity of finding their meal. You could find it everywhere such pet stores, and supermarkets – you could even plant it in your back yard! Yes, we all know that this little creatures – Mr. and Mrs. Rabbit – is a herbivore and practically eat fruits, grass, hays, and other vegetable. So, it's pretty easy to find their food that generally will sell in everywhere.
But, remember to choose it wisely. Even though their meal is easily to find – not every those things is safe for your rabbits or bringing benefit for them. No matter it's grass or hay or fruit, you should give them the best food which should has all the component that would keep them healthy. In this article – in particular – we would share to you 3 types of grass that are healthy for rabbits.
Yes, we're going to discuss about grass. Maybe a lot of you choose to feed your rabbit with hay, but do you know that some grasses are brought much benefit for your rabbit? Fact, grass is the most natural and fresh meal to eat for your rabbit – a low cost too. There are some rabbit, rather than hay they prefer to eat a green grass form your back yard. Grass is known with a high fiber, and it's very comfortable and suitable for rabbit digestion.
But, a lot of rabbit's owner refuse to give this fresh plant to their little creature out of concern that this fresh grass could upset rabbit gut and cause some diarrhea. Yes, this could happen – only if you give your beloved rabbit a high amount of grass. Actually this thing could happen too, if you also give your rabbit a high amount of hay. Whether it's hat or grass, you should feed your rabbit a proper amount of food.
You should give them a little pile of grass every day to make their digestion familiar with the grass – at least ten days to make them used to it. Also, you, yourself have to pick the grass for your rabbit, do not allow them to graze for their own – and don't ever let your rabbit eat the grass from your lawn and back yard. Because, this kind of grass is already contaminated by a lot of unknown object – could cause upset to their gut.
Another way to feed your rabbit with grass is you could plant it yourself. This plant – grass – thankfully could grow everywhere. You could plant it inside the house, in the tray, in the pot on your window, and others area that safe enough from the unknown object that could affect the grass. And to give you reference which grass that full of good component, here's: the 3 types of grass that are healthy for rabbits.
Wheat grass is part of Poaceae family. For us – human – we will process the wheat grass as a juice and drink it or it also could be added into another drink as well. But for pets (especially our rabbits), it could be one of the tasty and healthy food to eat among others. Wheat grass brings a lot of benefit for your rabbit that could help stabilized their health state.
Wheat grass contains chlorophyll, nutrient, antioxidant, vitamins B-complex to the health of nervous systems, vitamins A to maintenance the health of rabbit's eyes which is very important (especially for the night vision), vitamin C to build their immune system and act as antioxidant, also vitamins E which is very famous as a efficacious antioxidant for body to help them susceptible fatty acids in the membranes.
Vitamins K to helps regulate the blood clotting and very good for kidney function – also for bone metabolism, a complete set of amino acids, plus a lot of minerals. With all of these benefits, are you sure, you are going to refuse to give this grass to your beloved creature?
Timothy grass which is in the Latin called Phleum Pratense is a perennial grass that commonly found in the most Europe. It's also known as meadow cat's-tail – timothy grass is the member of genus Phleum. Why it's called Timothy? It's named based of the farmer that found it in 18th century, Timothy Hanson.
Timothy grass is a high protein and calcium plant. This plant is relatively high in fiber especially when you cute it late. This plant also could be use as a diet menu for your rabbits.
Orchard grass known as the high fiber, and contain with a balance level as phosphorus and calcium that would help much on your rabbit digestion function system. This plant is a perfect replacement for timothy grass in case your lovely rabbit is allergic to timothy grass. Orchard texture is softer than timothy which is very perfect for the picky and older rabbits. This textures also help to take care of the dental health of your rabbit.


text:
Notre Dame defensive end Khalid Kareem shares his love of art
By: Allison Hayes
Posted: Dec 28, 2019 11:43 AM EST
NOW: Notre Dame defensive end Khalid Kareem shares his love of art
They say life imitates art but for Notre Dame defensive end Khalid Kareem, art imitates life.
"I guess I always kind of loved art," Kareem said.
Kareem is a senior in the Mendoza College of Business but art is his secret passion.
"One of my advisors, the one thing that he told me was that, this is the one time in life where you really can do what you want to do for free. So I said, 'Ok, I'm going to take some art classes and kind of fell right back in love with it,'" Kareem said.
Kareem is minoring in art and has taken 6 classes ranging from drawing to painting and even ceramics. The non-conventional combo of art and business just feels right to him.
"One is really organic and the other is straight and narrow. Sometimes I have to change my mindset a little bit because I'm really creative at one point and then be sort of straight forward and see things for how they are, so I find a happy medium with it," Kareem said.
His final class at Notre Dame is an independent study where he is tasked with composing a self-portrait.
"I'm doing a big 60 by 48 painting of just me describing who I am and how I got to where I am today," Kareem said.
Kareem has been influenced by modern and pop artists like Keith Haring and Timmy Sneaks.
"He does a lot of mixed media. A lot of collages, different techniques. So, he'll print it out, the picture he wants in the middle and paint everything around it," Kareem said.
That style has inspired him.
"In the middle it's me, I think it's the celebration against Pitt when I got the sack, of me like screaming and then around me is a bunch of pieces of pop culture and the kind of things I was raised on, like cartoons I watched as a kid. And then in the background I have a tie that my dad gave me and a scarf my mom always wears, so that kind of represents them. And then I have my siblings initials. And an ND, there's a bunch of stuff on it. It will be fun to see what it's like when it's done," Kareem said.
Kareem will almost certainly be playing on Sundays. Number 53 is considered Notre Dame's highest NFL draft prospect.
But when it's time for life after football, Kareem has a plan.
"I want to buy and sell art. There's a lot of money there," Kareem said.
For now, he's using his artistic side to help him on the football field.
"I would definitely say the perfectionist taps into football, because I want to be, I guess, perfect and everything that I do. I'm always studying my opponent. The fine details, like I do in art, also in their game and try to pick them a part as well," Kareem said.
Like a brush stroke on canvas, every tackle, every sack is Kareem's very own work of art.


text:
using perseus::detail::processor;
using perseus::detail::opcode;

BOOST_AUTO_TEST_SUITE( vm )

BOOST_AUTO_TEST_SUITE( execution )

BOOST_AUTO_TEST_SUITE( boolean_arithmetic )

BOOST_AUTO_TEST_CASE( boolean_and )
{
  for( std::uint8_t a = 0; a < 2; ++a )
  {
    for( std::uint8_t b = 0; b < 2; ++b )
    {
      auto code = create_code_segment( opcode::and_b, opcode::exit );
      perseus::stack stack;
      stack.push< std::uint8_t >( a );
      stack.push< std::uint8_t >( b );
      perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
      BOOST_CHECK_EQUAL( static_cast< bool >( result.pop< std::uint8_t >() ), a && b );
      BOOST_CHECK_EQUAL( result.size(), 0 );
    }
  }
}

BOOST_AUTO_TEST_CASE( boolean_or )
{
  for( std::uint8_t a = 0; a < 2; ++a )
  {
    for( std::uint8_t b = 0; b < 2; ++b )
    {
      auto code = create_code_segment( opcode::or_b, opcode::exit );
      perseus::stack stack;
      stack.push< std::uint8_t >( a );
      stack.push< std::uint8_t >( b );
      perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
      BOOST_CHECK_EQUAL( static_cast< bool >( result.pop< std::uint8_t >() ), a || b );
      BOOST_CHECK_EQUAL( result.size(), 0 );
    }
  }
}

BOOST_AUTO_TEST_CASE( boolean_equals )
{
  for( std::uint8_t a = 0; a < 2; ++a )
  {
    for( std::uint8_t b = 0; b < 2; ++b )
    {
      auto code = create_code_segment( opcode::equals_b, opcode::exit );
      perseus::stack stack;
      stack.push< std::uint8_t >( a );
      stack.push< std::uint8_t >( b );
      perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
      BOOST_CHECK_EQUAL( static_cast< bool >( result.pop< std::uint8_t >() ), a == b );
      BOOST_CHECK_EQUAL( result.size(), 0 );
    }
  }
}

BOOST_AUTO_TEST_CASE( boolean_not_equals )
{
  for( std::uint8_t a = 0; a < 2; ++a )
  {
    for( std::uint8_t b = 0; b < 2; ++b )
    {
      auto code = create_code_segment( opcode::not_equals_b, opcode::exit );
      perseus::stack stack;
      stack.push< std::uint8_t >( a );
      stack.push< std::uint8_t >( b );
      perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
      BOOST_CHECK_EQUAL( static_cast< bool >( result.pop< std::uint8_t >() ), a != b );
      BOOST_CHECK_EQUAL( result.size(), 0 );
    }
  }
}

BOOST_AUTO_TEST_CASE( boolean_negate )
{
  for( std::uint8_t a = 0; a < 2; ++a )
  {
    auto code = create_code_segment( opcode::negate_b, opcode::exit );
    perseus::stack stack;
    stack.push< std::uint8_t >( a );
    perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
    BOOST_CHECK_EQUAL( static_cast< bool >( result.pop< std::uint8_t >() ), !a );
    BOOST_CHECK_EQUAL( result.size(), 0 );
  }
}

BOOST_AUTO_TEST_SUITE_END()

BOOST_AUTO_TEST_SUITE( int32_arithmetic )

BOOST_AUTO_TEST_CASE( int32_add )
{
  auto code = create_code_segment( opcode::add_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 4250 );
  stack.push< std::int32_t >( -8 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( result.pop< std::int32_t >(), 4242 );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_subtract )
{
  auto code = create_code_segment( opcode::subtract_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 1008 );
  stack.push< std::int32_t >( 1050 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( result.pop< std::int32_t >(), -42 );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_multiply )
{
  auto code = create_code_segment( opcode::multiply_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 6 );
  stack.push< std::int32_t >( 7 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( result.pop< std::int32_t >(), 42 );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_divide_no_remainder )
{
  auto code = create_code_segment( opcode::divide_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 42 );
  stack.push< std::int32_t >( 7 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( result.pop< std::int32_t >(), 6 );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_divide_round_down )
{
  BOOST_TEST_MESSAGE( "48/7 is closer to 7 than 6, but integer division is supposed to round down." );
  auto code = create_code_segment( opcode::divide_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 48 );
  stack.push< std::int32_t >( 7 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( result.pop< std::int32_t >(), 6 );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_modulo )
{
  auto code = create_code_segment( opcode::modulo_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 47 );
  stack.push< std::int32_t >( 7 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( result.pop< std::int32_t >(), 5 );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_less_than_true )
{
  auto code = create_code_segment( opcode::less_than_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 1 );
  stack.push< std::int32_t >( 2 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( static_cast< bool >( result.pop< std::uint8_t >() ), true );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_less_than_false )
{
  auto code = create_code_segment( opcode::less_than_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 2 );
  stack.push< std::int32_t >( 2 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( static_cast< bool >( result.pop< std::uint8_t >() ), false );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_less_than_or_equals_true )
{
  auto code = create_code_segment( opcode::less_than_or_equals_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 2 );
  stack.push< std::int32_t >( 2 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( static_cast< bool >( result.pop< std::uint8_t >() ), true );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_less_than_or_equals_false )
{
  auto code = create_code_segment( opcode::less_than_or_equals_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( 3 );
  stack.push< std::int32_t >( 2 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( static_cast< bool >( result.pop< std::uint8_t >() ), false );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_CASE( int32_negate )
{
  auto code = create_code_segment( opcode::negate_i32, opcode::exit );
  perseus::stack stack;
  stack.push< std::int32_t >( -42 );
  perseus::stack result = processor( std::move( code ) ).execute( 0, std::move( stack ) );
  BOOST_CHECK_EQUAL( result.pop< std::int32_t >(), 42 );
  BOOST_CHECK_EQUAL( result.size(), 0 );
}

BOOST_AUTO_TEST_SUITE_END()

BOOST_AUTO_TEST_SUITE_END()

BOOST_AUTO_TEST_SUITE_END()

redpajama_set_name: RedPajamaGithub


Everyone has gifts and passions, and they should use those to help others in need.
The newly updated Strong 5 Fulcrum is Karhu's most supportive and highly cushioned model for the training-focused stability runner. The full-length, asymmetrical fulcrum provides a stable landing platform to maximize comfort and proactively guide the foot that needs more stability.


text:
Discover Bordeaux's new art space, set in a former navy base
Seeing submarine basins in new light; Samantha David reports on the new art space in Bordeaux, set in a former navy base.
By Samantha David
Bordeaux has added to its already impressive range of museums with a new immersive exhibition space, the 'Bassins de Lumières', which claims to be the world's largest digital art centre. It is housed in a disused submarine base, which was one of five constructed along the Atlantic coast during the Nazi occupation of France. Construction of the giant basins began in 1941 and was completed in 1943, when it was used to house submarines by the Italian Royal Navy.
It was codenamed BETASOM (from 'Beta' referring to Bordeaux and sommergibile meaning submarine in Italian). Although not directly on the coast (Bordeaux is 60kms inland), during the Second World War it housed up to 30 submarines and included dry docks as well as massive basins.
The history of the building
The Allies bombed the site but with little effect, and Allied troops eventually occupied it in August 1944 and drove the Nazis out. After the war, the authorities realised that destroying the site was not a feasible option as it had been built to withstand bombardment; the bunker was 245 metres wide, 162 metres long and 19 metres high, and the reinforced concrete roof was up to 5.6 metres thick.
Eventually some 12,000m2 of the 42,000m2 site was opened to the public as a centre for performing arts, exhibitions and evening events, but it has now been taken over and redeveloped by Culturespaces as a space for immersive digital art. The first exhibitions are set to run until January 3, 2020. Using 90 video projectors and 80 speakers, the massive images are projected onto the walls surrounding the monumental basins, with the reflections in the water adding another dimension to the artwork on display.
Events in France this month: art, nature and music festivals
Art on show
Visitors walk along the quaysides and along gangways above the water as artworks are projected onto the walls. Four of the basins comprise the main space and exhibitions there will alternate between long exhibitions devoted to major artists, and shorter ones featuring more contemporary work. There are also three other exhibition spaces.
This year the exhibition in the main basins is 'Gustav Klimt: gold and colour' which looks at a century of Viennese art, presenting portraits, landscapes, nudes, colours and gilding. Austrian artists Gustav Klimt (1862-1918) was a founding member of an artistic group called the Vienna Secession.
The aim of the group was to exhibit work by unconventional young artists and bring the best foreign artists to Vienna. Influenced by Japanese art, Klimt is credited with paving the way for modern art. His focus is firmly on eroticism of the female body, and much of his most popular work, including 'The Kiss', features gilding.
Meet the artist who uses 'British' humour to win over French
Another exhibition currently running at the Bassins de Lumières is 'Paul Klee: painting music' which showcases the colourful abstract work of the German artist. Paul Klee is a musician as well as a painter, and the exhibition is a door into his pictorial world. Colourful fish, portraits and puppets combine to create an enchanting interlude.
In yet another space, 'Le Cube' there is an exhibition called 'Ocean Data' which is exactly what it says on the tin. Digital creation studio Ouchhh (a Turkish collective) specialises in graphic design and motion design and digital projections. They have collected massive amounts of data about the sea and created an algorithm which presents the data as a series of forms, light and movement. It is a journey through the sea via different materials and colours; a combination of art, science and technology.
www.bassins-lumieres.com/en/home
More from Explore France
A brief history of French time and 'timekeepers'
Mediterranean garden in south of France is a winter paradise


text:
// Copyright (c) Lex Li. All rights reserved.
//
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace Tests.IsapiFilters
{
    using System;
    using System.ComponentModel.Design;
    using System.IO;
    using System.Reflection;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    using global::JexusManager.Features.IsapiFilters;
    using global::JexusManager.Services;

    using Microsoft.Web.Administration;
    using Microsoft.Web.Management.Client;
    using Microsoft.Web.Management.Client.Win32;
    using Microsoft.Web.Management.Server;

    using Moq;

    using Xunit;
    using System.Xml.Linq;
    using System.Xml.XPath;

    public class IsapiFiltersFeatureSiteTestFixture
    {
        private IsapiFiltersFeature _feature;

        private ServerManager _server;

        private const string Current = @"applicationHost.config";

        private void SetUp()
        {
            const string Original = @"original.config";
            const string OriginalMono = @"original.mono.config";
            if (Helper.IsRunningOnMono())
            {
                File.Copy("Website1/original.config", "Website1/web.config", true);
                File.Copy(OriginalMono, Current, true);
            }
            else
            {
                File.Copy("Website1\\original.config", "Website1\\web.config", true);
                File.Copy(Original, Current, true);
            }

            Environment.SetEnvironmentVariable(
                "JEXUS_TEST_HOME",
                Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));

            _server = new IisExpressServerManager(Current);

            var serviceContainer = new ServiceContainer();
            serviceContainer.RemoveService(typeof(IConfigurationService));
            serviceContainer.RemoveService(typeof(IControlPanel));
            var scope = ManagementScope.Site;
            serviceContainer.AddService(typeof(IControlPanel), new ControlPanel());
            serviceContainer.AddService(
                typeof(IConfigurationService),
                new ConfigurationService(
                    null,
                    _server.Sites[0].GetWebConfiguration(),
                    scope,
                    null,
                    _server.Sites[0],
                    null,
                    null,
                    null, _server.Sites[0].Name));

            serviceContainer.RemoveService(typeof(IManagementUIService));
            var mock = new Mock<IManagementUIService>();
            mock.Setup(
                action =>
                action.ShowMessage(
                    It.IsAny<string>(),
                    It.IsAny<string>(),
                    It.IsAny<MessageBoxButtons>(),
                    It.IsAny<MessageBoxIcon>(),
                    It.IsAny<MessageBoxDefaultButton>())).Returns(DialogResult.Yes);
            serviceContainer.AddService(typeof(IManagementUIService), mock.Object);

            var module = new IsapiFiltersModule();
            module.TestInitialize(serviceContainer, null);

            _feature = new IsapiFiltersFeature(module);
            _feature.Load();
        }

        [Fact]
        public void TestBasic()
        {
            SetUp();
            Assert.Equal(5, _feature.Items.Count);
        }

        [Fact]
        public void TestRemoveInherited()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var document = XDocument.Load(Current);
            document.Root?.Add(
                new XElement("location",
                    new XAttribute("path", "WebSite1"),
                    new XElement("system.webServer",
                        new XElement("isapiFilters",
                            new XElement("remove",
                                new XAttribute("name", "ASP.Net_2.0.50727-64"))))));
            document.Save(Expected);

            _feature.SelectedItem = _feature.Items[0];
            Assert.Equal("ASP.Net_2.0.50727-64", _feature.SelectedItem.Name);
            _feature.Remove();
            Assert.Null(_feature.SelectedItem);
            Assert.Equal(4, _feature.Items.Count);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }

        [Fact]
        public void TestRemove()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var document = XDocument.Load(Current);
            document.Root.Add(
                new XElement("location",
                    new XAttribute("path", "WebSite1")));
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);
            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);

            Assert.Equal("test", _feature.SelectedItem.Name);
            Assert.Equal(6, _feature.Items.Count);
            _feature.Remove();
            Assert.Null(_feature.SelectedItem);
            Assert.Equal(5, _feature.Items.Count);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }

        [Fact]
        public void TestEditInherited()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var document = XDocument.Load(Current);
            document.Root?.Add(
                new XElement("location",
                    new XAttribute("path", "WebSite1"),
                    new XElement("system.webServer",
                        new XElement("isapiFilters",
                            new XElement("remove",
                                new XAttribute("name", "ASP.Net_2.0.50727-64")),
                            new XElement("filter",
                                new XAttribute("enableCache", "true"),
                                new XAttribute("preCondition", "bitness64,runtimeVersionv2.0"),
                                new XAttribute("name", "ASP.Net_2.0.50727-64"),
                                new XAttribute("path", "c:\\test.dll"))))));
            document.Save(Expected);

            _feature.SelectedItem = _feature.Items[0];
            Assert.Equal("ASP.Net_2.0.50727-64", _feature.SelectedItem.Name);
            var item = _feature.SelectedItem;
            item.Path = "c:\\test.dll";
            _feature.EditItem(item);
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal("c:\\test.dll", _feature.SelectedItem.Path);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }

        [Fact]
        public void TestEdit()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var document = XDocument.Load(Current);
            document.Root?.Add(
                new XElement("location",
                    new XAttribute("path", "WebSite1"),
                    new XElement("system.webServer",
                        new XElement("isapiFilters",
                            new XElement("filter",
                                new XAttribute("name", "test"),
                                new XAttribute("path", "c:\\test.exe"))))));
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);
            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);

            Assert.Equal("test", _feature.SelectedItem.Name);
            Assert.Equal(6, _feature.Items.Count);
            item.Path = "c:\\test.exe";
            _feature.EditItem(item);
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal("c:\\test.exe", _feature.SelectedItem.Path);
            Assert.Equal(6, _feature.Items.Count);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }

        [Fact]
        public void TestAdd()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var document = XDocument.Load(Current);
            document.Root.Add(
                new XElement("location",
                    new XAttribute("path", "WebSite1"),
                    new XElement("system.webServer",
                        new XElement("isapiFilters",
                            new XElement("filter",
                                new XAttribute("name", "test"),
                                new XAttribute("path", "c:\\test.dll"))))));
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);
            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal("test", _feature.SelectedItem.Name);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }

        [Fact]
        public void TestRevert()
        {
            SetUp();

            const string Expected = @"expected_revert.site.config";
            var document = XDocument.Load(Current);
            document.Root?.Add(
                new XElement("location",
                    new XAttribute("path", "WebSite1"),
                    new XElement("system.webServer")));
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);
            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal("test", _feature.SelectedItem.Name);

            _feature.Revert();
            Assert.Null(_feature.SelectedItem);
            Assert.Equal(5, _feature.Items.Count);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }

        [Fact]
        public void TestMoveUp()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var document = XDocument.Load(Current);
            document.Root?.Add(
                new XElement("location",
                    new XAttribute("path", "WebSite1"),
                    new XElement("system.webServer",
                        new XElement("isapiFilters",
                            new XElement("clear"),
                            new XElement("filter",
                                new XAttribute("enableCache", "true"),
                                new XAttribute("name", "ASP.Net_2.0.50727-64"),
                                new XAttribute("path", @"%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll"),
                                new XAttribute("preCondition", "bitness64,runtimeVersionv2.0")),
                            new XElement("filter",
                                new XAttribute("enableCache", "true"),
                                new XAttribute("name", "ASP.Net_2.0.50727.0"),
                                new XAttribute("path", @"%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll"),
                                new XAttribute("preCondition", "bitness32,runtimeVersionv2.0")),
                            new XElement("filter",
                                new XAttribute("enableCache", "true"),
                                new XAttribute("name", "ASP.Net_2.0_for_v1.1"),
                                new XAttribute("path", @"%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll"),
                                new XAttribute("preCondition", "runtimeVersionv1.1")),
                            new XElement("filter",
                                new XAttribute("enableCache", "true"),
                                new XAttribute("name", "ASP.Net_4.0_32bit"),
                                new XAttribute("path", @"%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll"),
                                new XAttribute("preCondition", "bitness32,runtimeVersionv4.0")),
                            new XElement("filter",
                                new XAttribute("name", "test"),
                                new XAttribute("path", "c:\\test.dll")),
                            new XElement("filter",
                                new XAttribute("enableCache", "true"),
                                new XAttribute("name", "ASP.Net_4.0_64bit"),
                                new XAttribute("path", @"%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll"),
                                new XAttribute("preCondition", "bitness64,runtimeVersionv4.0"))))));
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);
            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);

            var last = 5;
            var previous = last - 1;
            _feature.SelectedItem = _feature.Items[last];
            var expected = "test";
            Assert.Equal(expected, _feature.Items[last].Name);
            var original = "ASP.Net_4.0_64bit";
            Assert.Equal(original, _feature.Items[previous].Name);
            _feature.MoveUp();
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal(expected, _feature.SelectedItem.Name);
            Assert.Equal(expected, _feature.Items[previous].Name);
            Assert.Equal(original, _feature.Items[last].Name);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }

        [Fact]
        public void TestMoveDown()
        {
            SetUp();

            const string Expected = @"expected_add.site.config";
            var document = XDocument.Load(Current);
            document.Root?.Add(
                new XElement("location",
                 new XAttribute("path", "WebSite1"),
                 new XElement("system.webServer",
                    new XElement("isapiFilters",
                        new XElement("remove",
                            new XAttribute("name", "ASP.Net_4.0_64bit")),
                        new XElement("filter",
                            new XAttribute("name", "test"),
                            new XAttribute("path", "c:\\test.dll")),
                        new XElement("filter",
                            new XAttribute("enableCache", "true"),
                            new XAttribute("name", "ASP.Net_4.0_64bit"),
                            new XAttribute("path", @"%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll"),
                            new XAttribute("preCondition", "bitness64,runtimeVersionv4.0"))))));
            document.Save(Expected);

            var item = new IsapiFiltersItem(null);
            item.Name = "test";
            item.Path = "c:\\test.dll";
            _feature.AddItem(item);

            var last = 5;
            var previous = last - 1;
            _feature.SelectedItem = _feature.Items[previous];
            var expected = "test";
            Assert.Equal(expected, _feature.Items[last].Name);
            var original = "ASP.Net_4.0_64bit";
            Assert.Equal(original, _feature.Items[previous].Name);
            _feature.MoveDown();
            Assert.NotNull(_feature.SelectedItem);
            Assert.Equal(original, _feature.SelectedItem.Name);
            Assert.Equal(expected, _feature.Items[previous].Name);
            Assert.Equal(original, _feature.Items[last].Name);

            XmlAssert.Equal(Expected, Current);
            XmlAssert.Equal(Path.Combine("Website1", "original.config"), Path.Combine("Website1", "web.config"));
        }
    }
}


The box service is called Bibliophile Crate and features a couple of photographs of their boxes. Jane Austen is a yes, yes, yes!
This one being a classic of Hitchcock's North by Northwest with handsome oldie Cary Grant looks amazing as well!
They even have a one time wine accessory in Jane Austen's theme too that I might have to try.
Another coming soon box to be launched: Audrey Hepburn Themed <-- click here to be informed when it launches!


text:
Q: QSerialPortInfo::serialNumber() always returns an empty string QSerialPortInfo::serialNumber() always returns an empty string, which happens when it's unavailable.
I tried connecting different ports, everything seems allright, but it doesn't show a Serial Number of a port no matter what I do!
Port name, manufacturer, product ID, however, can be correctly outputted.
I didn't connect any devices to the ports, however.
Why can serial number be unavailable? Can this be fixed somehow?
I guess the mistake is somewhere outside code, but here is a slot that I use to access serialNumber() in :
void PortBrowser::onPortChange()
{
int i;
if(comsCombo->currentIndex()>-1)
    i =comsCombo->currentIndex();
else
    i = 0;

QSerialPort currPort(comsList[i]);

bool opened =  currPort.open(QIODevice::ReadOnly);

const QString seriNum = comsList[i].serialNumber();

serNum->setText(seriNum);
manufact->setText(comsList[i].manufacturer());
QTextStream out(stdout);
out<<comsList[i].serialNumber();
currPort.close();
}

A: If you take a look at the relevant source code parseDeviceSerialNumber() you will see quite some fancy logic where Qt tries to isolate a serial number from some device-identification string. That's the string you are likely also seeing in the Windows device manager way down in the details.

Why can serial number be unavailable? Can this be fixed somehow?

You seem to have a serial port that does not provide its identifier in a format Qt would understand. You could try to come up with a patch for Qt to make it recognize your serial port or you might go and buy a serial port that Qt does recognize. One chipset that is explicitly mentioned in the source code is FTDI.

redpajama_set_name: RedPajamaStackExchange


Tecno F2 Lite Specification, Image and Price in Nigeria, Kenya, Ghana, Egypt, Ivory Coast, Tanzania, Cameroon,Uganda, Pakistan, India, Bangladesh.
The Tecno F2 Lite comes with a 5.0 inch display and boasts of a 1.3 GHz Quad core processor with Android 8.1, Oreo. It also comes with a 1 GB of RAM, an internal memory of 8 GB. It has a back/ rear camera of 5 MP and an 5 MP front camera with a 2400 mah Li-Po battery capacity to push all this.
Below are Online stores you can buy Tecno F2 Lite. The Online stores Jumia, Gearbest and Konga.
$40 – $80 Check the Price in your country below by Clicking on Checkout Lowest Price to get the best deal and buy online.
The Tecno F2 Lite comes with dual SIM slots and supports the 2G, 3G and 4G LTE Band for its connectivity. It has inbuilt with it Wi-Fi capability and the ability to create Wireless Hotspots.
The Tecno F2 Lite comes with a display of 5.0 inches. It uses the IPS LCD display technology. It has a resolution of 854 by 480 pixel. The display is quite good quality for phones within this price range.
The Tecno F2 Lite boast of a Quad (Four) Core processor clock at 1.3 GHz, the chipset is the MediaTek. The GPU is the Mali.
The Tecno F2 Lite also comes with a 1 GB of RAM, an Internal Memory (ROM) of 8 GB. The storage space can be expanded via the micro-SD slot (Maximum allowable Storage for Micro-SD is 32 GB and it uses a dedicated slot).
The Tecno F2 Lite comes with Android 8.1, Oreo out the box.
The Tecno F2 Lite makes use a 5MP back or rear camera with LED flash and an 5 MP front camera with LED flash light.
The Tecno F2 Lite has a battery with the capacity of 2400 mAh. The Battery uses the Li-Po technology and it is non removable. This battery could last for a day on an average heavy usage.


NEW DELHI: grew 0.5 per cent from a year earlier, the slowest since June 2017, government data showed on Friday.
as measured in terms of the Index of Industrial Production (IIP) had grown by 8.5 per cent in November 2017, as per data released by the Central Statistics Office (CSO) on Friday.
November's growth was much slower than an upwardly revised 8.4 per cent year-on-year increase in October, the data showed.
During the April-November period, grew 5 per cent as compared to 3.2 per cent in the same period of the previous fiscal.


The greatest battler of PKMN.NET will be decided in this 32-Participant tournament. Pokemon from all tiers other than Uber will be permitted. Please note - Garchomp, Skymin and Deoxys-E are also banned.
The winner of this battle goes on to battle #8 in the next round.
The winner of this battle goes on to battle #9 in the next round.
The winner of this battle goes on to battle #10 in the next round.
The winner of this battle goes on to battle #11 in the next round.
The winner of this battle goes on to battle #12 in the next round.
The winner of this battle goes on to battle #13 in the next round.
The winner of this battle goes on to battle #14 in the next round.
The winner of this battle goes on to battle #15 in the next round.


Summertime means pasta salad to me. Its quick, easy and uses all the great vegetables you get from the garden or the farmers markets. The most important reason I love this dish is you only need to use one burner. No oven needed! Where I live that is very important on those 100+ degree days of summer.
Some of my favorites to pick up at the farmers market are spinach, fresh dill, celery, baby yellow crookneck squash and zucchini. I always have pasta, olives and pickles in the cabinet.
Boil the pasta, depending on what type you want to use -read the box on how long to boil it. I will usually cook it 1-2 minutes less than it says, but I like it firm but not crunchy. Cook the pasta how you like it best.
While the pasta is boiling, just start chopping and dumping in a big bowl. Chop-dump, chop-dump………..
About half way through chopping the pasta should be done- drain and let cool while you finish chopping.
When you are done chopping all the other ingredients, dump the cooled pasta into the bowl with everything else.
Add the mayonnaise and all the spices. If the pasta doesn't look moist you can add either more mayo or a little pickle juice.
This dish works well if you are going to a BBQ. I just put the chopped veggies in a big, take a big bowl, put the wet ingredients and the spices in plastic bowl with a lid and put it all together when I get to the event.


text:
Q: View pager with web views fast scrolling I need to make view pager with webview on every page. App will download remote (large) images from server to device cache and when download completes it should appear in current webview. This is my view pager item layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000"
    android:gravity="center"
    android:padding="10dp" >

    <WebView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#00000000"
        android:padding="1dp" />

</RelativeLayout>

and this is my instantiateItem method in view pager adapter:
public Object instantiateItem(ViewGroup container, int position) {

        inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View itemView = inflater.inflate(R.layout.viewpager_item, container,
                false);

        imgflag = (WebView) itemView.findViewById(R.id.image);

        imgflag.setBackgroundColor(0x000000);
        imgflag.getSettings().setBuiltInZoomControls(true);
        imgflag.getSettings().setUseWideViewPort(true);
        imgflag.getSettings().setLoadWithOverviewMode(true);
        DownloadImageTask task = new DownloadImageTask(urls[position]);
        task.execute();

        ((ViewPager) container).addView(itemView);

        return itemView;
    }

And this is DownloadImageTask class:
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {

    String imageUrl;
    String filename;
    public DownloadImageTask(String url)
    {
        super();
        this.imageUrl=url;
    }

    protected Bitmap doInBackground(String... urls) {
        Bitmap image = null;
        Log.d("Start", "Start downloading");
        filename=imageUrl.replace('/', '-');
        filename=filename.replace('.', '-');
        filename=filename.replace(':', '-');
        File file=new File(context.getCacheDir(), filename);
        if(file.exists())
        {
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inPreferredConfig = Bitmap.Config.ARGB_8888;
            Bitmap bitmap = BitmapFactory.decodeFile(context.getCacheDir() + "/" + filename);
            return bitmap;
        }
        URL url;
        try {
            url = new URL(imageUrl);
            HttpURLConnection ucon = (HttpURLConnection) url.openConnection();
            image = BitmapFactory.decodeStream(ucon.getInputStream());
            File cacheDir = context.getCacheDir();

            File imageFile = new File(cacheDir, filename);

            FileOutputStream fos;
            fos = new FileOutputStream(imageFile);
            image.compress(Bitmap.CompressFormat.JPEG, 100, fos);
            fos.close();
            fos.flush();

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return image;
    }

    protected void onPostExecute(Bitmap result) {
        if(result!=null)
        {

            String style="width='100%'";
            if(result.getWidth()>result.getHeight())
                style="height='100%'";
            String base = context.getCacheDir().getAbsolutePath().toString();
            String imagePath = "file://"+ base + "/" + filename;
            String html = "";
            imgflag.loadDataWithBaseURL("", html, "text/html","utf-8", "");
        }
   }
}

And everything works perfect when I scroll slowly, page by page... But if I scroll fast about 10-20 pages (without waiting for every to load), it doesnt work right. It will not crash or something like that, but view is just black. And started downloads won't stop when I leave page that started loading, it still loads images in background, so maybe it could cause problems? And when it doesnt load image, console says: nativeOnDraw failed; clearing to background color.
Is there any simple fix for this problem? I should not use any external codes, libraries or something like that - i should code everything by myself.

A: The root cause of the problem is that you are starting a large number of AsyncTasks in quick succession. These operate in their own thread. If you scroll through 20 pages, then you are simultaneously trying to download up to 20 images from a remote source. It is possible to cancel an AsyncTask by calling its AsyncTask.cancel(true) method, however this is not very helpful as you also have to check for AsyncTask.isCancelled() in your doInBackground() method. As you are only really conducting one long running task, this isn't very helpful. Furthermore your ViewPager is responsible for maintaining your WebView so determining when to call it would be difficult.
I would suggest attempting to download all the images as soon as the ViewPager adapater is instantiated. You would also need a placeholder image to display if the image is not yet downloaded.
So your AsyncTask would look something like this:
private class DownloadImages extends AsyncTask<String, Void, Void> {

    private List<String> mUrls

    public DownloadImagesTask(List<String> urls){
        mUrls = urls;
    }

    protected Void doInBackground(){

        for(String url : mUrls){

            if(isCancelled())
                break;

            //Your code to download and save the files locally
    }

And your ViewPager Adapter something like this
public Object instantiateItem(ViewGroup container, int position) {

    inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View itemView = inflater.inflate(R.layout.viewpager_item, container,
            false);

    imgflag = (WebView) itemView.findViewById(R.id.image);

    imgflag.setBackgroundColor(0x000000);
    imgflag.getSettings().setBuiltInZoomControls(true);
    imgflag.getSettings().setUseWideViewPort(true);
    imgflag.getSettings().setLoadWithOverviewMode(true);

    String imageUrl = urls[position]

    //Your code to turn url into filepath
    //If file exists - display set WebView image = file
    //Otherwise set WebView image to placeholder file
}


text:
Home Google, Facebook test new fake news algorithm
Google, Facebook test new fake news algorithm
The fake news phenomenon has gathered momentum over the past few years and reached a point at which, some say, it has the power to sway elections.
Not many elections are bigger than the US presidential contest, in which Republican Donald Trump and Democrat Hillary Clinton were involved in one of the most intense political encounters in recent history.
Not only were both parties engaging in what might be called the traditional mud-slinging, but the campaign was made even more difficult for voters by the outrageous lies and conspiracy theories of what has come to be known as the "fake news" media.
While it could be argued that journalists have historically been somewhat lax at times with the facts, there is a human intelligence behind the stories and those humans responsible can be questioned about it, in court if necessary.
But this new fake news is different: its lies are often outrageous in the extreme, and it employs new techniques such as edited photographs showing scenes that never happened in real life.
And dealing with it using artificial intelligence or algorithms is a challenge which is currently beyond most if not all tech companies.
The other, possibly even weirder practice is to decry a historical event as being fake even when the vast majority of people accept it as the truth, and there were many witnesses.
For example, there seems to be a growing perception that the 1969 moon landings, led by Neil Armstrong, were nothing more than a Hollywood-style film shoot – that the moon landing never happened and the whole moon landing thing was just all filmed in a studio.
These apparently preposterous claims have found their equal – or inverse mirror image – in the newly widespread phenomenon of "photoshopped" false images, often created out of several photographs and illustrations and fashioned into scenes that never happened in real life.
While some might say these are just fun images and most people know they are fake, the problem is that such false pictures and accompanying baseless stories often get listed by Facebook, Google, Twitter and other giant social media outlets as real, factual news – when they are not and should clearly not be listed as such.
Some may argue that people will know they're fake as soon as they see it, so it doesn't matter if they're listed categorised as news or not, but others argue that fake stories did indeed swing the election in Trump's favour. So fake news does have serious consequences. Fake news and Russian spies – allegedly.
Google and Facebook test new algorithm designed to catch 'fake news' Click To Tweet
To combat fake news, if not Russian spies, two of the social media giants which came in for the most amount of criticism – Facebook and Google – are developing algorithms designed to identify and eliminate them from the list or stream or whatever they call it.
They don't address the central problem of such companies setting themselves up as – and profiting from being – purveyors of other people's news content, and not even employing enough humans to select the stories and do the editing. All of this is a very important factor in the demise of print and other forms of journalism. And hence the rise of fake news. In a way, fake news was inevitable.
However, we are where we are, and Facebook and Google have launched an algorithmic system to deal with fake news with the help of French media which is being tested in France.
As reported on CNet.com, the two companies are "taking a stand" against the fake news that they themselves helped to circulate.
The project is called CrossCheck, and is designed to "help the public make sense of what and who to trust in their social media feeds, web searches and general online news consumption in the coming months", says Google.
Google has done many good things online. Its search engine is by far the most accurate in finding what people are looking for, which is why it basically won the web. Its news service – whatever other news media outlets' quibbles about it – generally does a good job of algorithmically aggregating stories of interest, and not many fake news stories make it through, if any at all.
It's possible that Google does have a lot of human employees which help the algorithm out along the way, whether it's in search or news. So it wasn't really Google which was criticised for distributing fake news.
It was actually Facebook which received most criticism. Perhaps it was being scapegoated, but in any case, the company has since taken the issue very seriously.
As with many websites, Facebook is hoping its 2 billion or so users help out by flagging fake news stories. To be fair, there is just too much content for any company to deal with, no matter how large.
But it's lucky for such companies that the Internet was always seen as a bit of frontier, a "Wild West" territory, where the rules of the real world don't always apply, because if they did, a lot of these companies would be sued to bankruptcy, not just Gawker.
Ask the Expert: What is intelligent automation and how can businesses use it in their daily operations?
Top 10 Fintech Startups
Tech investors optimistic about Brexit Britain
Previous articleModern Performance Management : Why Companies are Rethinking the Annual Performance Review
Next articleEdge computing might give us faster machines
Apple looks to be on the…
Google unveils world's most powerful quantum…
Australian employees stressed by digital transformation…
Dfinity raises more than $60 million…
Launch your startup in Europe's Silicon…
Interview: The moving world of modern business
IT Initiative—Cloud Adoption, Devops Methodology (French Version)
Two-thirds of IT chiefs say absence of AI will lead to...
Build your own applications, or get an AI computer to do...


New museums that you must see in Paris!
Five new addresses on the cultural scene offer some unusual experiences!
The City of Light is packed with exceptional museums, and 5 new ones have opened on the cultural scene offering some unusual experiences. Paris continues to innovate in its cultural offering and these 5 new museums, each in their own way, revolutionize our approach to art: L'Atelier des Lumières, Lafayette Anticipations, 11 Conti, Institut Giacometti and Le Corbusier's Apartment-atelier.
Get ready to dive into some of the greatest works in the history of art! L'Atelier des Lumières promises an exciting immersion into the heart of some exceptional artistic worlds, thanks to a surround sound system and an impressive array of projectors.
Offering an entirely novel approach to art, this museum is housed in a former foundry in Paris's 11th arrondissement, and is offering the unique experience of having works by some of history's greatest painters projected across surfaces totalling more than 3,000 m², from floor to ceiling! A completely captivating experience, both visually and sonically, the visit is accompanied by music illustrating the era or atmosphere of each piece. The sensory experience is multiplied and visitors can experience artistic works that are truly living. Expect to be blown away!
Opens 13 April with the exhibition 'Klimt and Vienna', where the spectacular multimedia equipment will enable visitors to walk through the heart of the belle époque.
'What you are about to see does not yet exist – that's the slogan of this new foundation! Located in the heart of the Marais, Lafayette Anticipations is an entirely new space dedicated to contemporary art that can be transformed at will. Low or high ceilings, small intimate rooms or large spaces opening onto outdoor areas, rooms plunged into darkness or bathed in natural light thanks to an enormous window … this place sports a completely different layout for each exhibition, with seemingly infinite possibilities for walking through the different spaces.
It's an unusual way to come and get to know the work of artists who can display their work in the way they wish. Music and projections can also complete this space, splitting up each floor both visually and sonically. A great experience!
One of the oldest French institutions is unveiled! The Monnaie de Paris (the Paris Mint) is shining a spotlight on the hidden aspects of its activity by opening its coinage workshops to the public, to reveal numerous secrets and superb treasures. Among these: the factory's walls – an architectural gem, and never-before-exhibited collections containing precious objects and coins from across the centuries. Visitors can discover the different ways coins are minted, as well as how to create stamps, medals, and other art objects.
The museum is also offering new experiences based around metalwork, enabling visitors to try out the work of the artisans in a fun way: operating the machines and assisting in the workshops. An interactive and sensory museum that puts the emphasis on the arts & crafts trades, and the modernity of this institution, which honours its historic past. Chiselling, engraving, enamelling, and many other trades will no longer be shrouded in secrecy for you! Ideas for future vocations.
As of June 2018, Paris finally has a museum devoted to Alberto Giacometti. A major 20th-century artist – a painter, sculptor and draftsman who is today mainly known for his slender bronze figures – Giacometti set himself up in a modest atelier in the 14th arrondissement of the French capital when he was starting out. He would continue working there for the rest of his 40-year career. The Giacometti Foundation has now created a replica of this legendary studio only a short walk from the original address. Located inside a 350-m² private mansion decorated in the art deco style, the museum displays Giacometti's own furniture as well as some of his personal effects and decorative objects. The drawings and annotated images on the walls give visitors the feeling of entering the artist's private sphere and enable us to understand the great master's creative process.
More than 70 sculptures in plaster and bronze, as well as late-stage works in clay – can be admired here. Some of the pieces have never before gone on public display because they are extremely fragile. A display cabinet featuring more than 5,000 drawings, lithographs and personal notebooks, as well as a library section partly made up of the artist's own books provide further points of interest in the museum.
Three or four temporary exhibitions are organized here each year.
Admission by prior arrangement. Online ticket purchase only. No ticket sales at the museum.
Le Corbusier's Apartment-atelier (apartment-and-studio) reopened to the public in June 2018 following a two-year renovation. This extraordinary duplex, which features on Unesco's World Heritage List, is intimately connected to the famous French architect and urban planner.
In the early 1930s, when Charles-Edouard Jeanneret-Gris (better known as Le Corbusier) was working with Pierre Jeanneret to construct the Molitor apartment building on the edges of Boulogne-Billancourt, having designed it with a façade made of entirely of glass (a first anywhere in the world for a residential building back then), he decided to purchase the duplex on the 7th and 8th floors of the building: a light-filled 240-m² penthouse comprising an apartment, a painting studio, a guest room and a roof garden with a breathtaking view of the Bois de Boulogne.
The duplex served as both a home and an office for the visionary architect. Above all, it became his laboratory over the next 30 years: the place where he tested new layouts and materials and reviewed his working methods and architectural use of colour. An ever-changing space, it served as a source of inspiration for many of the urban developments that Le Corbusier built in various parts of the world.


"We get a feeling that Your Lordships do not want it to be heard"
Said Senior Advocate Dushyant Dave to Justice A. K. Sikri last Thursday, perturbed at the latter's segregation of himself from the hearing on the challenge to M. Nageshwar Rao's continuation as the interim CBI Director, coming close on the heels of Chief Justice Ranjan Gogoi's recusal from the matter.
The PIL by NGO Common Cause and RTI Activist Anjali Bharadwaj had come to be placed before the second senior most judge of the Supreme Court on January 24, after the Chief Justice saw it unfit to hear it himself in the wake of his impending participation in the meeting of the High-Powered Committee (to deliberate on the appointment of the probe agency's new Director) scheduled for later on the same day.
In addition to nullifying Rao's appointment as the interim head, the petition also seeks for the decisions at the various stages of the process of shortlisting and selection of the Director to be publicized in the interest of transparency.
Even as Justice Sikri abstained from spelling out the reasons for his recusal, his reluctance was apparent as stemming from the role he played in the erstwhile Director Alok Kumar Verma's ouster on January 10- Justice Sikri was the Chief Justice's representative on the Selection Committee, which also comprised PM Narendra Modi and the Leader of the Opposition Mallikarjun Kharje.
Chief Justice Gogoi, having authored the earlier judgment calling upon the Committee to decide on the corruption allegations against Verma expeditiously and, in the meanwhile, reinstating Verma at the helm of the CBI's affairs, had refrained from himself taking part in the Committee's meeting.
The NGO's petition was listed before the Chief Justice on January 21 "as per roster", after it was taken on board on being 'mentioned' by Advocate Prashant Bhushan on January 16, on which occasion an urgent hearing was hands down denied.
Finally, when the case came up on the docket before himself, Chief Justice Gogoi had by a judicial order required it to be heard by Court 2.
With several quarters having henceforth been abuzz with an anticipation of a successive recusal by Justice Sikri, One would wonder if the Chief Justice could have been more cautious in listing the petition before the former.
Justice Sikri's recusal could be said to have been even less unprecedented in the face of the very recent happenings where, despite the knowledge of him being formerly chosen for the post of the Chairman of the prestigious CSAT, he was nevertheless nominated to the Selection Committee by the Chief Justice. When his vote happened to be determinative of Verma's divestiture, it was widely alleged that the lucrative post-retirement job by the government was perhaps consideration for this outcome. Immediately, amidst such speculations, Justice Sikri had declined the offer of appointment to the London-based CSAT.
At an event last week in Delhi, veteran journalist Rajdeep Sardesai had quizzed (retd.) Justice Madan B. Lokur on the Chief Justice's recusal from Common Cause's petition, in response to which the former judge had asked rhetorically, "Do you expect the Chief Justice to consider the issue and then subsequently participate in the meeting (for the appointment of the new Director)?".
Sardesai, unrelentingly, had further taken to ask that if the Chief Justice had deemed it appropriate to hear the earlier challenge to Verma's sudden removal at the behest of the government, when even at that point he was to eventually participate in the Selection Committee's meeting, why did he envisage a conflict in respect of the latest plea. "Well, now that the Chief Justice has already decided that matter, what now?", Justice Lokur had remarked simply.
In these circumstances, what one could find slightly bewildering is that if the Chief Justice acknowledged the impropriety of his hearing Common Cause's PIL, did he miss the conflict at Justice Sikri's end? After all, it could be said to be a consequence of his deciding vote on January 10 that Rao continues as interim Director.
As not entirely unforeseen, when the case came up before Justice Sikri last Thursday, the judge relayed his decision to recuse and refused to budge, even as both Mr. Dave and the Attorney General assured him that they were unfettered by his participation in the meeting of January 10.
"We wanted the matter to be heard early but that was not allowed. Finally, when it came to be listed before the Chief Justice, he recused...If Your Lordship felt that you could not hear it, then you should have recused a day before and not when the matter comes up...The meeting (of the Selection Committee for the appointment of the CBI Director) is today and we wanted Directions! This will mean nothing after the meeting!...This court went out of its way to issue directions to convene a meeting to remove (Alok Verma). Then the Committee did not meet for three weeks! Now the court is silent and the government is silent?", Mr. Dave had contended vehemently.
Stating that if the petition had come to be listed before him by administrative order, he would have recused earlier, Justice Sikri had been inclined to have it heard by an "appropriate bench" as per the Chief Justice's orders immediately on the following day.
With Justice S. A. Bobde, next in seniority to Justice Sikri, being on leave since last Friday, the PIL is likely to be now heard on February 1.
In the meantime, the government has already prepared a list of eligible candidates for the post of the CBI Director for the benefit of the Committee which is expected to assemble on January 30 or 31.


A Victorian child has died during an outbreak of influenza over the summer season, and now health authorities are urging people to get immunised.
A meningococcal jab campaign for Tasmanian youths has already saved some from the potentially-deadly disease, but many 20-year-olds are shunning the vaccine.
NSW Health says there were 178 confirmed cases of the flu across the state in the week ending July 1, a quarter the number of cases this time last year.
Children under five can be vaccinated against influenza for free under a Queensland government initiative to stop the spread of the virus.
An American pharmaceutical company claims daily capsules of peanut flour can help prevent serious allergic reactions to peanuts, in a major study.
A major study, which will be released in Brisbane, has identified genetic risks and links between the three most common allergies: asthma, hay fever and eczema.
A cheap vaccine has been blamed for the number of Australians succumbing to the flu this winter, with more than double the number of confirmed cases.