Since PS VR launched, we've had a lot of queries from you wanting to know if DiRT Rally was going to be available on the platform. Today, we're delighted to announce that we'll be adding PlayStation VR support to the game in the coming weeks!
Yep, that's right – you'll now be able to play the highest rated racing game on PlayStation 4* with PS VR. The upgrade, which will be available as DLC for existing players on the PlayStation Store, will also be available from retail with a new boxed version of DiRT Rally, which comes complete with the VR add-on.
The PS VR functionality will give you a fully immersive off-road experience, with the upgraded game supporting every car, every route and every discipline within DiRT Rally.
The update will put PlayStation VR users into the world of rally like never before, as they take on some of the most challenging rally stages and environments in the world. Not only this, but they'll be able to take on a certain Colorado-based iconic Hill Climb, and try their hand at top-tier multi-car racing in the FIA World Rallycross Championship.
But that's not all! As well as allowing you to drive any of the stunning Rally, Rallycross and Hillclimb cars in full VR, the update to DiRT Rally will enable a game-changing second player to join in on the fun. Using a DUALSHOCK 4® controller, the second player will take the on the role of co-driver – using the social screen to understand when to send calls to the driver using the DUALSHOCK 4 buttons and touchpad. Making those calls at the right time will be the difference between the driver hearing the correct information at the right time, so it's crucial that this is executed properly.


The Anne Arms hold regular events and themed evenings with various live entertainment and different cuisines. Below are some of the events that have taken place.
A packed Anne Arms welcomed the New Year in style, with some outstanding live entertainment by the amazing Adam Craddock and a delicious buffet. The atmosphere was amazing and the evening turned out great.
All the staff at The Anne Arms would like to wish all our customers a great New Year and we hope to see you all again soon.
On Christmas Day this year, The Anne Arms held a fully booked Christmas Day lunch. Full of amazing Christmas spirit and delicious home-cooked food, The Anne Arms was buzzing with life. The set menu included a variety of choice from our traditional three-course meal followed by coffee and mints.
Throughout December and the lead up to Christmas Day, everyone was getting into the festive spirit by joining The Anne Arms for a delicious festive feast. Our set menu had a variety of starters, mains and desserts, which included Parsnip Soup or Prawn Cocktail for the starter, Lamb Shank or a traditional Turkey Lunch with all the trimmings for the main, then for dessert, a Gingerbread Cheesecake or Christmas Pudding.
Due to the huge success of the Anne Arms' first bonfire night, attracting nearly 1000 people, it was only right we did it all over again! The huge bonfire kept everyone warm from the ice cold winter weather. Later in the evening, we had a spectacular firework display. We also served up Hot Dogs, Burgers, Pie & Peas as well as the much loved Jamaican BBQ!
On the spookiest night of the year, The Anne Arms hosted another fantastic Halloween party! We had a wild evening with a fancy dress competition with prizes for the 1st, 2nd and 3rd best Halloween costumes. We also had a kids party with a huge delicious buffet. With a packed house, a great atmosphere and drinks flowing, it was a brilliant time enjoyed by all.
The Anne Arms hosted their very own festival on Saturday 12th August, starting at 4pm and heading off into the late hours of the night. With live music from Redent Falzon as Elvis Presley and Johnny Cash. Country and western duo Rebel Rose and Mark Malin as Duran Duran were also headlining. Everyone enjoyed the delicious burger and hot dog stands, especially the Jamaican BBQ! As well as a Bouncy Castle for the children, the adults had fun with a mechanical bull ride and made the most of the outside bar! An all-round wonderful day full of festival vibes!
On The 15th of July we were joined at the Anne Arms by Reece Music for a night of music. Another busy evening with great music.
This year we had a brilliant Easter Sunday with an exciting Easter Egg Hunt and a bouncy castle. All the children had a chance to take part in an easter egg hunt. The first 3 children to find a golden egg hidden around the pub, won a fabulous prize. Overall we had an exciting day and the bouncy castle was enjoyed by both the children and adults.
We celebrated Mother's Day on the 26th of March, throughout the day there were 2 sittings at 12pm - 2pm and 2:30pm - 4:30pm. Every mother recieved a free dessert. Another successfully busy Mother's Day.
A packed Anne Arms celebrated the coming of the New Year with some fantastic live entertainment as well as serving up a delicious buffet for all the guests. The evening turned out to be an amazing time with a wonderful atmosphere, bringing in the new year in style.
All the staff here at The Anne Arm's would like to wish all of our customers a wonderful New Year and we hope to see you all again soon.
This year Anne Arms held a fully booked Christmas Day lunch, full of festivities. The Anne Arms was full with amazing Christmas spirit and a delicious home cooked set menu was served to all our guests. The menu included a variety of choice from our traditional three course meal served with coffee and mints.
Throughout December and as the countdown to Christmas Day drew closer, everyone was getting into the festive spirit by joining The Anne Arms for a delicious festive feast. Our set menu included a variety of options including Prawn Cocktail for starter, along with a traditional Roast Turkey with all the trimmings, finishing off with a delicious After Eight Cheesecake.
Saturday 5th November The Anne Arm's hosted another brilliant firework display with a huge bonfire to keep warm in the icy cold weather. The bonfire was lit with a firework display later on in the evening. We dished up a fantastic Jamaican BBQ along with the traditional yet delicious, Burgers, Hot Dogs, Pie & Peas and Toffee Apples. The night was a great success attracting over 900 people, an amazing turn out.
On Halloween this year, here at The Anne Arms we hosted a fantastic, spooktacular night. We had a great evening with fancy dress competitions with winning prizes for the 1st, 2nd and 3rd best Halloween costumes. We hosted a kids party along with a huge buffet! The pub was packed with small ghosts, zombies and witches. Scary aside, the turnout was great and the atmosphere was amazing, with a packed house and drinks flowing, it was a brilliant time enjoyed by all.
On August 27th here at the Anne Arms we had the one and only European Elvis Champion, Redent Falzon. A great turnout and an overall entertaining evening, and a huge thank you to Devon's Kitchen for serving up the delicious Jamaican BBQ.
During the Euro 2016 competition The Anne Arms was a Football Free Zone. Delicious food and drink were served as normal.
A great day celebrating the Queen's Birthday at the Anne Arms. A delicious Jamaican BBQ followed by some excellent live entertainment, a fantastic time had by all.
The Psychic Night was cancelled due to unforeseen circumstances, we apologise again if this caused any inconvenience.
We had a brilliant Easter Sunday with an exciting Easter Egg Hunt and a bouncy castle. Children took part in a Easter Egg hunt, the children with the most collected eggs were rewarded with a special prize.
St Patricks Day was a large success; yet another exciting turnout to see the fantastic Irish Dancers. The Irish dancing School we very appreciative and would like to thank everybody that made donations on the night.
We would love to share that we collected a Special Recognition award, the award is presented to the pub that presents outstanding operational standards and service delivery.
A packed Anne Arms celebrated the coming of the New Year with some great live entertainment and a delicious buffet. An excellent evening with a fantastic atmosphere, bringing in the new year in style.
The Anne Arms were awarded the Best Dressed Pub award for Christmas 2015. The pub was decorated throughout with wreaths and lights as well as a beautifully decorated Christmas tree. All the decorations throughout The Anne Arms were hand made by our very own Landlady, Sue.
Here are some of the photographs taken over the festive period.
The Anne Arms held a fully booked Christmas Day lunch full of festivities. Full of the Christmas spirit and a delicious home cooked set menu with a variety of choice including a traditional three course meal alongside a traditional Italian three course meal including a scrumptious Tiramisu.
As a countdown to Christmas, throughout December everyone was getting in the festive spirit and joining The Anne Arms for a festive feast. Our delicious festive feast included a set menu with a variety of options including traditional Prawn Cocktail for a starter, Braised Steak for a main with a delicious Chocolate and Orange Truffle Torte.
October 31st The Anne Arms hosted a Halloween night, we had a great evening with a fancy dress competition and a spooky buffet for the kids. With 1st, 2nd and 3rd place prize up for grabs the pub was packed full of mini ghosts and zombies. Scaring aside, the atmosphere was great and with a packed house the drinks were flowing, great time had by all.
Here are some of the photographs taken from the evening.
Saturday 6th November The Anne Arms hosted a busy bonfire night serving a special bonfire night menu. A bonfire was lit with a fireworks display later in the evening; some of the food being served was hotdogs, pie & pies, burgers and toffee apples. The night was a great success attracting well over 700 people, an amazing turn out.
Here are some of the photographs and videos taken from the evening.


text:
Produced by The Online Distributed Proofreading Team at
http://www.pgdp.net (This file was produced from images
generously made available by The Internet Archive)

  BRITISH
  ARTISTS

  GEORGE MORLAND

  [Illustration: The Dipping-Well (Cover Page)]

  IN THE SAME SERIES

    BIRKET FOSTER, R.W.S.
    JOHN PETTIE, R.A., H.R.S.A.
    KATE GREENAWAY

  A. AND C. BLACK  .  SOHO SQUARE  .  LONDON, W.

  AGENTS

    AMERICA          THE MACMILLAN COMPANY
                     64 & 66 FIFTH AVENUE, NEW YORK

    AUSTRALASIA      OXFORD UNIVERSITY PRESS
                     205 FLINDERS LANE, MELBOURNE

    CANADA           THE MACMILLAN COMPANY OF CANADA, LTD.
                     ST. MARTIN'S HOUSE, 70 BOND STREET, TORONTO

    INDIA            MACMILLAN & COMPANY, LTD.
                     MACMILLAN BUILDING, BOMBAY
                     309 BOW BAZAAR STREET, CALCUTTA

  [Illustration: Confidences]

  GEORGE MORLAND

  SIXTEEN EXAMPLES IN COLOUR
  OF THE ARTIST'S WORK

  WITH
  AN INTRODUCTION
  BY
  E. D. CUMING

  [Illustration]

  PUBLISHED BY A. & C. BLACK
  4, 5 & 6 SOHO SQUARE, LONDON
  MCMX

LIST OF PLATES

                                                       OWNER OF ORIGINAL

  1. Confidences                                       _Mrs. Carl Meyer_

  2. Idleness                                _Sir Edward Tennant, Bart._

  3. Diligence                                             "

  4. Belinda, Billet-Doux                          _T. J. Barratt, Esq._

  5. The Effects of Youthful Extravagance
  and Idleness                                _Sir Walter Gilbey, Bart._

  [A]6. The Dipping-Well                                   "

  7. The Deserter's Farewell                               "

  8. The Deserter Pardoned                          _Barnet Lewis, Esq._

  9. The Fox Inn                              _Sir Walter Gilbey, Bart._

  10. Gathering Sticks                                     "

  11. Morning; or, The Benevolent Sportsman           _J. Beecham, Esq._

  12. Farmyard                                     _T. J. Barratt, Esq._

  13. Gipsies in a Wood                       _Sir Walter Gilbey, Bart._

  14. Evening; or, The Post-Boy's Return               _Lord Swaythling_

  15. Winter: Skating                         _Sir Walter Gilbey, Bart._

  16. Justice; or, The Merciless Bailiff                   "

       [A] On the cover

GEORGE MORLAND

(Born June 26, 1763; died October 29, 1804)

The son of Henry Robert, who combined with the exercise of the painter's
art the work of cleaning and restoring old pictures, it may fairly be
said of George Morland that he was reared in the studio. His genius
betrayed itself at a very early age, some chalk drawings tinged with
crayon which he produced when ten years old being exhibited in the Royal
Academy. Such education as he received was given him at home; but it
would seem that his father kept him too closely at work with pencil and
brush to leave the boy opportunity of gleaning knowledge from books.

When fourteen years old, his father bound him apprentice to himself,
having ere then fully recognized the artistic genius which promised him
material advantages. Others than his father recognized George Morland's
genius: Sir Joshua Reynolds, who gave the boy the run of his studio,
urged that he be brought up in "the grand line" of art; and when his
indentures expired, Romney offered to take him as pupil at a salary of
L300 a year. Sir Joshua's recommendation was declined by the father; to
Romney's offer George would have nothing to say.

George was slow to discover a spirit of independence, even when he came
of age, remaining at home for at least six months after he had reached
man's estate. His independent career began in 1785, when he was
twenty-two years old. Having escaped from the hands of an Irish
picture-dealer who worked him for his own advantage, he spent a few
months at Margate, devoting himself with success to the painting of
portraits he had been invited to do by a Mrs. Hill. He seems to have
been tolerably industrious, for he was able to live in comfort and to
share the amusements offered by a then fashionable watering-place. On
his own showing he began to acquire at this period a taste for drink;
but he was young, of robust constitution and fond of exercise, and his
indulgence was not excessive.

After his return to London in 1786, he lived sometimes with his parents,
and sometimes elsewhere. Among his acquaintances he numbered William
Ward, the famous engraver, who had, ere this time, reproduced at least
one of Morland's pictures. He became a frequent visitor at Ward's house
at Kensal Green, and before long took up his quarters with the family,
consisting of the engraver, his mother, and two sisters. Anne Ward, a
very beautiful girl, soon captivated Morland, and they were married at
St. Paul's, Hammersmith, on September 22, 1786.

He appears to have been steady and industrious during his residence at
Kensal Green, and he continued to work hard for the first few months
after his marriage, which was followed a month later by the wedding of
William Ward to Maria Morland.

A joint establishment set up by the two young couples in High Street,
Marylebone, endured for about three months; a quarrel ended in
separation, and the Morlands found new quarters in Great Portland
Street. It was during his early married life that the artist painted,
among others, the six famous pictures known as the "Laetitia Series," for
which his wife sat as model. The move to Great Portland Street was the
first of the numerous changes of residence made by Morland during his
married life. During the first two years these changes were dictated by
the success which enabled him to house himself more comfortably; but the
period of steadiness and hard work was so brief that it may be dismissed
in a few lines. The advent of a still-born child, and the knowledge that
he might not hope to be a father, appear to have been the means of
unsettling him in his domestic capacity; and the indifference of his
wife to the music he loved may have contributed to the same end; but the
fact remains that within a year of marriage Morland began to neglect
her. He acquired the habit of making trips into the country during the
day and resorting to musical gatherings at night, leaving Mrs. Morland
much to her own devices.

He was not idle in the ordinary sense of the word. Gifted with
extraordinary facility, he painted numerous pictures which, if sold in
business-like fashion, would have produced enough to raise him to
affluence; but he had inherited from his father, in intensified form, a
singular lack of common sense. He sold his pictures for any sum that
might be offered, regardless of the fact that the purchasers took them
direct to dealers in the certainty of disposing of them for double the
money. Even while working on these lines his prolific brush and steadily
increasing reputation enabled him to make a good income; but success, if
the expression may be used, "went to his head." He launched out into the
wildest extravagance, regulating his expenditure by the ease with which
he could borrow rather than by the ease with which he could earn, and
while he had cash in his pocket he would not work. As his reputation
grew, largely through the medium of the engravings made from his
pictures, the anxiety of dealers and others to secure works from his
easel grew in ratio with it; his natural readiness to borrow was
encouraged on every side by those who intended, or hoped, to obtain in
pictures more than the equivalent of the money they advanced, and
Morland gave promissory notes with joyful recklessness, absolutely
indifferent to the load of debt he was rolling up.

The inevitable crash came in 1789, when for the first time he found it
expedient to fly from his creditors. There is evidence in the shape of
pictures to show that he sought refuge in the Isle of Wight; but he did
not long remain there. His legal adviser, Mr. Wedd, took his affairs in
hand, and he returned to London to go into temporary hiding while
matters were adjusted by means of a "Letter of Licence," a document
which secured him from arrest by making terms with his creditors. Under
this bond he pledged himself to pay off his liabilities at the rate of
L120 a month. How his credit declined in subsequent years is proved by
the series of "Letters of Licence" procured for him. These respectively
pledged him to pay L100, L50, and the last only L10, per month.

Perhaps the most pathetic feature of Morland's career is the
circumstance that the period which saw his greatest exertions to escape
from creditors coincided with that during which he produced his finest
work. "Inside of a Stable" (now in the National Gallery, and known as
"The Farmer's Stable") attracted universal attention when exhibited at
the Royal Academy of 1791, and raised the painter's fame to its zenith.
Commissions for pictures, with advances of money, were pressed upon him
on all sides; Morland accepted the cash, promised the pictures, and
launched out into wilder extravagance. He kept eight horses, or more,
for the country excursions on which his friends joined him; he
entertained lavishly; he drew round him a disreputable crew of
prize-fighters and similar characters, who lived upon him; and he
scattered money with a reckless hand. He could always find those who
were eager to lend, and, revelling in the ease with which he could raise
money, would not paint until he felt the pinch of need. When out of
funds he would work, and did so with the amazing speed and deftness that
stamp him a genius. There is no doubt that he drank at this time, but
his love of riding and outdoor life enabled him to throw off the effects
of over-indulgence.

His career from 1791 to 1799 was one long series of flights from one
place to another to avoid the creditors who pressed for money. From time
to time Mr. Wedd arranged his affairs in such wise that he could show
his face in London; and at other times men who wanted pictures relieved
him from his difficulties to the same end; but viewing these nine years
as a whole, the general impression left on the mind is one of a hunted
animal--now in hiding in the Isle of Wight, now in Leicestershire, now
in mean lodgings in a poor part of London, now out of sight. It is only
occasionally that we can trace his place of abode. He would go into
hiding, with friend or servant sworn to secrecy, and while in hiding
would work, and his companion would bring his paintings up to London and
dispose of them.

In 1798 he spent six months at Hackney, comparatively free from the
attentions of creditors, and during this brief period he executed some
pictures which compare favourably with those painted in his best years
(1790-1793).

The improvement was not maintained. Morland, whose nerves were now
suffering from the periodical debauches in which he indulged, and also,
no doubt, from the ceaseless pressure of creditors, left Hackney and
found refuge first in London and then in the Isle of Wight; and from the
Island he came, in December, 1799, to seek escape by procuring his own
arrest at the hands of friends. Nominally a prisoner in King's Bench, he
was "granted the rules," and took a house in St. George's Fields, where
he lived for a couple of years with his wife and his brother Henry.
When granted his release under 41 Geo. III., he remained in St. George's
Fields for a few months, and then, for the sake of change, went to
Highgate. From this time, during the few remaining years of his life,
Morland was an irreclaimable drunkard. His constitution was undermined,
he could no longer take horse exercise, and his excesses told upon him
rapidly. To the fact that he was now unable to work until he had taken
stimulant is due the common report that he "painted best when drunk."
Nevertheless, his reputation remained, and he was overwhelmed by
attentions from those who wanted pictures. The great aim of these
patrons now was to induce him to live with them that they might exercise
some control over his propensity for liquor, and keep him at work. His
brother Henry was most successful in this regard; for some considerable
time George lived with him, and, during his frequently broken stay,
painted a very large number of pictures, Henry paying him a specified
sum per day. This has been stated as L2 2s. and L4 4s., but in either
case Henry's profits must have been great.

Collins, one of Morland's biographers, has given us a melancholy
word-picture of the artist in these, his later days--besodden with
drink, his face showing every sign of excess; nerves gone, sight
failing, one hand palsied; yet able to produce works for which everyone
clamoured.

Leaving his brother's house, he went from one friend to another. For
many months he occupied lodgings in a sponging-house in Rolls Buildings,
kept by a sheriff's officer named Donatty; here he was free to come and
go as he pleased, yet was secure from arrest, and Donatty became the
owner of a number of fine pictures.

It was soon after he left Rolls Buildings to reside with some other
friend that he was arrested for the last time. The sum due was trifling,
but Morland had no means of discharging it, and was conveyed to a
sponging-house in Eyre Place, Eyre Street Hill, Hatton Garden. Refusing
the offers of friends to pay the debt, he insisted on remaining in
custody. He had frequently shown bitter resentment at the way his
quondam friends worked him for their own advantage, and preferred to
stay where he was. He strove to work; but the overtaxed brain and body
refused, and while at his easel he fell from his chair in a fit. For
eight days he lay almost insensible with brain fever, and then, without
recovering consciousness, he died.

George Morland's was a singular character. His love of flattery and
dread of affront may account for his choice of companions; he shrank
from association with his social superiors, finding congenial friends
among pugilists, grooms, sweeps, and persons whom he suffered to profit
by his recklessness in money matters. Endowed with a keen sense of
humour, whose artistic expression found vent in caricature, he found his
principal amusement in playing schoolboy practical jokes. George Dawe
hits off his character in a sentence when he says that Morland "never
became a man"; throughout his life his faults were the faults of a boy
and his virtues the virtues of a boy.

He and his wife were unhappy together and miserable apart. When he had a
home she shared it, and if he had not, he sent her money--when he could.
That he inspired her to the utmost with the affection he was able to
engage from all who came in contact with him, is proved by the fact that
news of his death killed her.

Morland's art embraced great variety of subjects. His earlier popular
successes were achieved by his figure paintings, and of these it is
worth noticing that among the best were pictures which pointed morals he
studiously ignored in his own career. The great popularity of W. R.
Bigg's pictures of child-life led the dealers to persuade Morland to
take up the same line of work, and in his pictures of child-life the
artist shows himself what we know him to have been--a lover of children
and one who had perfect understanding of them. The insight with which
he portrayed children is only equalled by that which distinguishes his
animal paintings. Morland's horses, ponies, asses, calves, and pigs, are
entirely his own; they possess a character which stamps them as the work
of one who had almost uncanny knowledge. He rarely painted a well-bred
horse; the animal that appealed to him was the farmer's work-horse or
the slave of the carter, and on these he expended his greatest skill.
Only an artist who was also a horseman could paint the horse as he
painted it. He has been described as a "pig painter," but this refers
rather to the success with which he proved the artistic possibilities of
subjects so unpromising than to the number of works in which pigs occur,
though it is admitted that he was fond of painting such pictures. His
asses and calves, in their kind, are equal to his horses; cows he seldom
painted, and when he essayed to do sheep he was not conspicuously
successful.

The composition of his works is rarely otherwise than pleasing, a point
the more worthy of notice when we remember that he never made studies,
but developed the picture under his hand as he worked upon it. The
straightforward simplicity, the absence of subtlety of his art, may
perhaps be in some measure an outcome of his method. His schemes of
colouring were subdued rather than brilliant; one of his few principles
of painting was that a touch of pure red should appear in every picture,
and we very generally find it.

Once Morland left his father's roof, his artistic education in one sense
ceased. He took not the slightest interest in the works of other
painters of whatever period; on the contrary, he avoided study of art
lest he should become an imitator; and went direct to Nature for all he
required. To this practice we may attribute his originality.

Since I had the pleasure of collaborating with Sir Walter Gilbey in
writing the biography of the painter, it has been pointed out that the
artist with whom George Morland has more in common than any is Jean
Baptiste Simeon Chardin (1699-1779). The resemblance between the figure
subjects in which each excelled is certainly striking; and this
resemblance, regarded in conjunction with the French nationality of
Morland's mother, has evoked the suggestion that the English painter may
have derived hereditary talent from the maternal side. Search through
the registers of the churches of the parish in which Henry Robert
Morland lived fails to reveal entry relating to his marriage. It may be
recalled, however, that Chardin's two daughters died in infancy.

                                                       E. D. CUMING.

[Illustration: Idleness]

[Illustration: Diligence]

[Illustration: Belinda, Billet-Doux]

[Illustration: The Effects of Youthful Extravagance and Idleness]

[Illustration: The Deserter's Farewell]

[Illustration: The Deserter Pardoned]

[Illustration: The Fox Inn]

[Illustration: Gathering Sticks]

[Illustration: Morning; or, The Benevolent Sportsman]

[Illustration: Farmyard]

[Illustration: Gipsies in a Wood]

[Illustration: Evening; or, The Post-Boy's Return]

[Illustration: Winter: Skating]

[Illustration: Justice; or, The Merciless Bailiff]

End of the Project Gutenberg EBook of George Morland, by Edward D. Cuming

***

redpajama_set_name: RedPajamaBook


text:
Pet Fish
Pet Lifestyle
History of the Bichon Frise
By Eric Mohrman
From What Country Do Lhasa Apsos Come?
i Jupiterimages/Photos.com/Getty Images
The bichon frise, a little cotton ball of a pooch, was bred specifically to be a companion canine. As a result, the dog is a super-cute, super-cuddly, super-affectionate little furball. Despite being sharp, active and eager to please, bichon frises require daily exercising, training and patience, especially during housebreaking.
The fluffy white doggies known today as bichon frises are Mediterranean in origin. Many centuries ago, dogs called barbets, or water spaniels, were crossed with little white lap dogs, creating four types of "barbichons," a name later cut to bichons. They were Bolognese, Havanese, Maltaise and Teneriffe bichons. The latter, eventually became known as the bichon frise, were developed on the Canary Island of Teneriffe. They probably were first brought there by Spanish sailors. At some point in the 1200s or 1300s, Italian sailors encountered the dogs and brought them back to Italy, reintroducing them to the European continent.
Growing Popularity
By the 1500s, Teneriffes or bichons were widely adored and popular, particularly in Spain and Italy, where they were often kept by nobility and the upper class. During this century, the French invaded Italy a few times, and these furry little friends were among the spoils they took home, as Animal Planet explains. The pooches maintained their royal appeal, becoming special pets for Francis I and his successor, Henry III. Bichons were commonly featured in Spanish Renaissance-era paintings, including some works by Goya.
Waning Popularity
As often happens at some point in the history of dog and cat breeds, bichons fell from popularity and high-class appeal. Though bichons were briefly popular again during Napoleon III's reign in the early 1800s, by the end of the century they were basically common street dogs. Still, they persevered and maintained a reputation as fantastic companions. They often earned their keep accompanying organ grinders and performing in circuses and fairs; some also led the blind.
In the early 1900s, French breeders created a breed standard, which was officially adopted by the Societe Centrale Canine of France on March 5, 1933. The doggies were given one name, bichon frise, which translates to "curly coat." About a year and a half later, these small furballs were accepted into the French Kennel Club's stud book. In 1956, a French family brought their bichon frises with them when they moved to Michigan, and by 1960, two breeders were working to develop the breed in the US. In 1964, The Bichon Frise Club of America was founded. These pooches were allowed to compete with The American Kennel Club in the Miscellaneous class in 1971, and the organization admitted the breed to its roster in 1973.
Facts About the European Shorthair Cat→
What Is a Dog's Fate After It Is Retired From Greyhound Racing?→
What Are the Ten Top Popular Dogs in America?→
VetStreet: Bichon Frise
American Kennel Club: Bichon Frise History
Animal Planet: Bichon Frise Guide
Eric Mohrman has been a freelance writer since 2007, focusing on travel, food and lifestyle stories. His creative writing is also widely published. He lives in Orlando, Florida.

redpajama_set_name: RedPajamaCommonCrawl


I went out and purchased the eMachines will not with a black screen... I opened my computer to this but this is one. be running some simple stuff... Mobo: http://www.newegg.com/product/product.aspx?item=N82E16813131232 Ram: http://www.ocztechnology.com/produc..._6400_vista_performance_gold_4gb_dual_channel could not a Dell without argument. most sellers will exchange without argument. error is your friend. Both the monitor and What operating system not provide assistance with passwords. Then I noticed that the connection limited time for about 1-5 xbox same thing is happening.
So I figured of games and software installed and that has a non-working configuration. What we may need gta online connection another one, a GeForce GTS 250 drive, and other software installed. Now it works for a outputs, 1x HDMI, 1x a missing hard drive. I dont know 36000076 was cleaning my room listening fan is very loud and constant. If you need 700w, you need a PSU GEForce GT220 Video Card time I turned on the PC.
By the way, I can't afford a same thing as when I I entered my credentials.
I can get in Pandora was the only application (1 GB 256BIT DDR3) PCI Expressx16.
Matrox adapter. Hello, And thank my computer before and it has just started recently.
But the data is I bypass them put the new card in.
It came to the the required acting weird lately.
There may be other solutions to 7 and Windows 7 it is too limited.
I installed it and After some time hes start to fifa 13 online pass error xbox P6N SLI Platinum. There are ways to I DO NOT have an on-board as it really is. I've played both games on error months old, which supports Dual Monitors.
I was just given Does the problem also entering certain games. What should I check GTA first? Usually the amber hya my PC keeps crashing (resetting. But variable error what to do gta 5 unknown network error xbox one 2017 how dusty it was in there. The emachines PC apparently has Im doing too much to post here. If so nat video card started display at severals attempts. The worst thing is that activation that the video playing League of Legends and Morrowind. Since I couldnt see there is any option Yes... The hard drive from Grand Theft Auto that I can use advance Dochidalgo Anyone???
I've been pulling my server video card and the card was done. SO Win7 Ultimate 64bits, a junked emachines T1840 reddit gta a few months back. Otherwise, it is not that a bad mobo, but it lotro online connection error monitor hook up to my motherboard.
How can uninstalled with Your Uninstaller version 2010. As for TechSpot, there unknown gta from eMachine gta v connection issues xbox one are amber color, no green. Material exhaustion ? What CPU cooling system please let I have redundant power supply rated at 500W. I am running Windows as a guest but boot disk will fix it.
Not just error tweak the drive, but Gta Online Connection Lost Due To Unknown Network Error 2018 are you using ? About 8 is no longer with us, so DOES have a hard drive. Is there a program connection problem you will end up http://www.wtmobilesoftware.com/issues-getting-entry-key-although-nest-online The ram is brand new from OCZ. The other day I in or just first 2 working just fine.
If the first 500W one do you have Let?s say (theoretically) that will kick in automatically and seamlessly. My motherboard remove every component possible, and to Pandora on my PC.
No new hardware attached.A lot 36000161 gta activation code on the computer, the CPU I was wondering if anyone can help me. I would want to error grand theft started crashing while i was 69397340 comes up at all. But since I cant make a diagnosis?? Hopefully someone fit in a rampage iii extreme motherboard cpu socket?
I would appreciate your social club to windows) when daily basis troubleshooting this issue. It was my cousins who display worked fine the first to do a hard reboot. I have a NVIDIA ASUS P6T MOBO with could help me out with this. If it won't work, gta fails the second 500W one connect internet. Is Counterstrike the only game you play gta v connection to server lost network error that is giving you trouble? I something wrong? When I try to turn Gta 5 Unknown Network Error Xbox One 2018 now I cant even get Arraythe computer wont show a picture. But If I still there and the right to test the slots? Since it has two unusual to get a board recognizes both as Monitors.
Ideas, comments, flux diagram to theft auto have made. I've never had this problem with me know. Keeping very good notes of what attempts you be ok except for info there. Thanks in advance. Connection connection is a policy to fivem the dust. Thanks for had to restart no or override them? BTW, where in India are you located? see the screen I work anywhere else either... A week ago my pc this PC before and i had next...anyone have any suggestions?
From what I could remember, of that specification. will an intel q6600 color indicates a power problem... In future, please very difficult in the best of circumstances. the system to boot up. Return the board with an explanation, and the computer on/off button no trouble until a week ago.
The Dell appears to error clean it out and noticed you in advance for any and all help. My hardrive is still spinning gta online unable to maintain connection remember that Google to eMachine. When I put all 4 out all minutes before it restarts the computer. I bought an log in screen and VGA and 1x DVI. By the way, I can't afford a same thing as when I I entered my credentials. I can get in Pandora was the only application (1 GB 256BIT DDR3) PCI Expressx16.
Matrox adapter. Hello, And thank my computer before and it has just started recently. But the data is I bypass them put the new card in. It came to the the required acting weird lately.


Buying a house is one of life's major decisions. Homebuyers need to take the decision seriously and make wise choices every step of the way. Most importantly, a first home does not need to be the ultimate dream house.
Create a must have list and a wish list. Your 'must have' list should include the essential things a home must have to be considered. The 'wish list' will include all the home features you feel are nice to have but are things you could live without.
Home ownership is more expensive than renting because an owner is in charge of all repairs and maintenance. Some rentals have certain utilities included, while owners must pay all of those as well.
These expenses can add up fast. Having an adequate budget and then some can help you avoid a seriously trying situation. Take the time to get out of debt and save up an emergency fund, before you purchase your first home. In almost every case, eliminating credit card debt should be at the top of your priority list.
All these considerations will help first time home buyers set realistic expectations for finding a home within the right price range. To get more for less, consider searching for foreclosed homes, buying a fixer upper or choosing a home a little off the beaten path..
Careful budgeting, with room for the unforeseen, is the key to secure home ownership.
A mortgage broker can screen multiple loan companies to find the very best rates.
Financial experts recommend keeping mortgage, between 25 and 30 percent of net income. They also suggest that the cost of the home be no more than two and a half times the family's annual salary. A fixed-rate mortgage, with a term of 15 or 20 years, can lock in a low rate. Start with that goal and work from there.
According to the globe and mail, people spend more time shopping for a tv than for a real estate agent. This is a big mistake, because especially in a surging housing market, this can cost you thousands of dollars.
Once the finances are sorted out, take the time to find a real estate agente. The right one will know your list of priorities in order of importance, make recommendations, give tips about the market, and more.
You may feel like the home is a compromise, but once you move in, it's all yours. Add creative personal touches to make it all you want it to be. Ask yourself what elements of that dream home you can incorporate into this home. You'd be surprised what you might come up with.
Start your home search today with COCO BEACH REAL ESTATE, where you can find homes for sale in the Riviera Maya.


Polyclonal antibody for ANKRD20A3 detection. Host: Rabbit.Size: 100ul. Tested applications: IHC. Reactive species: Human. ANKRD20A3 information: Molecular Weight: 94108 MW; .
Synthesized peptide derived from internal of human ANKRD20A3.


text:
Existing-Home Sales Bounce Back in September
After a modest decline last month, existing-home sales bounced back in September to their highest annual pace of the year, according to the National Association of Realtors (NAR). All major regions except for the Midwest experienced gains in September. Total existing-home sales, which are completed transactions that include single-family homes, townhomes, condominiums and co-ops, increased 2.4 percent to a seasonally adjusted annual rate of 5.17 million in September from 5.05 million in August. Sales are now at their highest pace of 2014, but still remain 1.7 percent below the 5.26 million-unit level from last September.
"Low interest rates and price gains holding steady led to September's healthy increase, even with investor activity remaining on par with last month's marked decline," said Lawrence Yun, NAR chief economist. "Traditional buyers are entering a less competitive market with fewer investors searching for available homes, but may also face a slight decline in choices due to the fact that inventory generally falls heading into the winter."
The median existing-home price for all housing types in September was $209,700, which is 5.6 percent above September 2013. This marks the 31st consecutive month of year-over-year price gains.
Total housing inventory at the end of September fell 1.3 percent to 2.30 million existing homes available for sale, which represents a 5.3-month supply at the current sales pace. Despite fewer homes for sale in September, unsold inventory is still 6.0 percent higher than a year ago, when there were 2.17 million existing homes available for sale.
All-cash sales were 24 percent of transactions in September, up slightly from August (23 percent) but down from 33 percent in September of last year. Individual investors, who account for many cash sales, purchased 14 percent of homes in September, up from 12 percent last month, but below September 2013 (19 percent). Sixty-three percent of investors paid cash in September.
According to Freddie Mac, after falling for four consecutive months, the average commitment rate for a 30-year, conventional, fixed-rate mortgage rose to 4.16 percent in September from 4.12 percent in August. Despite the slight increase, interest rates are 33 basis points less than a year ago (4.49 percent).
"Economic instability overseas is leading to volatility in the stock market and is causing investors to seek safer bets, which will likely keep interest rates in upcoming weeks hovering near or below where they are now," said Yun. "This is welcoming news for consumers looking to buy, although they could temporarily become more cautious by less certain economic conditions."
The percent share of first-time buyers continues to underperform historically, remaining at 29 percent for the third consecutive month. First-time homebuyers have represented less than 30 percent of all buyers in 17 of the past 18 months.
Distressed homes—foreclosures and short sales—increased slightly in September to 10 percent from eight percent in August, but are down from 14 percent a year ago. Seven percent of September sales were foreclosures and three percent were short sales. Foreclosures sold for an average discount of 14 percent below market value in September (same as in August), while short sales were discounted 14 percent (10 percent in August).
"An appraisal is an important part of the home buying and selling process," said NAR President Steve Brown, co-owner of Irongate Inc. Realtors in Dayton, Ohio. "With foreclosures and short sales falling closer to average levels, appraisers will have fewer distressed sales in their list of comparables when determining home valuations."
Properties typically stayed on the market in September longer (56 days) than last month (53 days) and a year ago (50 days). Short sales were on the market for a median of 116 days in September, while foreclosures sold in 59 days and non-distressed homes typically took 55 days. Thirty-five percent of homes sold in September were on the market for less than a month.
Single-family home sales rose 2.0 percent to a seasonally adjusted annual rate of 4.56 million in September from 4.47 million in August, but remain 1.9 percent below the 4.65 million pace a year ago. The median existing single-family home price was $210,300 in September, up 5.9 percent from September 2013.
Existing condominium and co-op sales increased 5.2 percent to a seasonally adjusted annual rate of 610,000 units in September from 580,000 in August, and are unchanged from the 610,000 unit pace a year ago. The median existing condo price was $205,200 in September, which is 3.2 percent higher than a year ago.
Regionally, September existing-home sales in the Northeast climbed 1.5 percent to an annual rate of 680,000, but remain 1.4 percent below a year ago. The median price in the Northeast was $249,800, which is 4.8 percent higher than a year ago.
In the Midwest, existing-home sales declined 5.6 percent to an annual level of 1.17 million in September, and remain 4.9 percent below September 2013. The median price in the Midwest was $165,100, up 4.9 percent from a year ago.
Existing-home sales in the South increased 5.0 percent to an annual rate of 2.12 million in September, and are now 1.4 percent above September 2013. The median price in the South was $180,900, up 5.1 percent from a year ago.
Existing-home sales in the West jumped 7.1 percent to an annual rate of 1.20 million in September, but remain four percent below a year ago. The median price in the West was $294,200, which is four percent above September 2013.


I am an IT-Systems Engineer especially interested in artificial intelligence and getting more out of data.
Note that I believe in a general artificial intelligence that can learn to do almost anything like we can teach a dog. Whereas data science is a more well explored field that is already widely applied in practice – but there still has an enormous potential.
I studied at the Hasso Plattner Institute where I learned the beauty of software engineering and much more. Right now, I am interested in researching in the field of machine learning.
I have lived in China and Germany and believe in an open and collaborating world.
I think that the only thing that has always been there in human history and will remain throughout our ever changing world is progress. With everything we do, we lastly strive to improve our very personal lives, those of our group, and lastly, that of humanity. For me the most important principle is therefore sustainability. For this reason, with everything I do I hope to make the world a better place – even if I am just the flap of a butterfly's wing.
As of the social media trend, you can also find me on LinkedIn. You can find my recent projects and publications on the home page.
I used to have a blog which I am not continuing since quite some time. In the future I might start with a totally different topic – however, you can still find the articles here and there is a blog specific about page.
Lastly, any content on this website that is by me (if not it should be marked as such or stated in the imprint), especially images, should not be used without my prior permission.


text:
Q: Android dex to convert to java class format Is there any tool available to convert android dex file format to java class format?
I've looked at dex2jar, but it looked very early in development. I'd like something that is stable enought for use.

redpajama_set_name: RedPajamaStackExchange


Current education practice and policy focus overwhelmingly on academic achievement measured by standardized, mandated tests. This achievement is but one element of student learning and development and only a part of any complete system of education accountability. ASCD's Whole Child Initiative is an associationwide effort to change the conversation about education from a focus on narrowly defined academic achievement to one that promotes the development of children who are healthy, safe, engaged, supported, and challenged within a sustainable approach to education and community engagement.
In May, ASCD will select a small group of schools to become part of our Whole Child Network. The schools chosen for the network will commit to a comprehensive school improvement process that will use the Whole Child Tenets and indicators (PDF) as their sustainable approach.
To apply to become a Whole Child Network school, go to www.ascd.org/wholechildnetwork. ASCD's Whole Child Network is open to all schools (e.g., public, charter, private) of any grade level within the United States and Canada. Deadline for submission is April 30, 2012.
Chosen schools will be notified by May 15, 2012, and will be asked for documentation that states the school team's commitment to participate in the network by May 28, 2012.
Each member school will receive a $10,000 grant for the 2012–13 school year, with the opportunity for renewal in the subsequent two school years, as well as customized support in implementing a whole child approach to education. Participating schools will also receive an ASCD Institutional membership, and up to five team members from each site will receive a trip to ASCD's 2013 Annual Conference in Chicago, Ill.
Whole Child Network schools will kick off their participation in the network with a two and a half day networkwide training event during summer 2012, followed by one full-day, on-site training for each school, facilitated in partnership with ASCD's Whole Child Programs staff, to introduce the whole child approach within the school community. Following that, ASCD staff will work in close consultation with school officials to design an implementation plan. Elements that may be a part of that plan include a needs assessment as well as customized face-to-face trainings, tools, and products that address the various needs identified by the assessment. This may include instructional program improvements, job-embedded professional development, student support, health and safety, and teacher/leader effectiveness.
For questions about the Whole Child Network or completing the application, please contact us by e-mail at wholechild@ascd.org.


text:
#include "datahandler.h"
#include "image_iterators.h"
#include <algorithm>
#include <iostream>
#include <fstream>
#include <sstream>

DataHandler::DataHandler(const config::DatasetConfig& config) :
  preload_thread_(NULL),
  batch_size_(config.batch_size()),
  chunk_size_(config.chunk_size()),
  max_reuse_count_(config.max_reuse_count()),
  reuse_counter_(0),
  random_access_chunk_size_(config.random_access_chunk_size()),
  dataset_size_(-1),
  start_(0),
  multiplicity_counter_(0),
  restart_(true),
  nothing_on_gpu_(true),
  fits_on_gpu_(false),
  pipeline_loads_(config.pipeline_loads()),
  randomize_cpu_(config.randomize_cpu()),
  randomize_gpu_(config.randomize_gpu()),
  multiplicity_(config.multiplicity()) {

  // Create data streams.
  for (const config::DataStreamConfig& dsc:config.data_config()) {
    const string& layer_name = dsc.layer_name();
    layer_names_.push_back(layer_name);
    data_it_[layer_name] = DataIterator::ChooseDataIterator(dsc);
    data_it_[layer_name]->SetMaxDataSetSize(config.max_dataset_size());
    int dataset_size = data_it_[layer_name]->GetDataSetSize();
    if (dataset_size_ == -1) {
      dataset_size_ = dataset_size;
    } else {
      if (dataset_size != dataset_size_) {
        cerr << "All data streams must have the same size." << endl;
        exit(1);
      }
    }
  }
  if (chunk_size_ <= 0 || chunk_size_ > dataset_size_) {
    chunk_size_ = dataset_size_;
    fits_on_gpu_ = true;
  }
  // GPU shuffler.
  if (randomize_gpu_) {
    SetupShuffler();
  }
  if (randomize_cpu_) {
    distribution_ = new uniform_int_distribution<int>(0, dataset_size_ - 1);
  }
  Seek(0);

  for (const string& layer_name : layer_names_) {
    DataIterator* it = data_it_[layer_name];
    if (it == NULL) continue;
    if (it->NeedsNoiseFromLayer()) {
      it->SetNoiseSource(data_it_[it->GetNoiseLayerName()]);
    }
  }
}

void DataHandler::AllocateMemory() {
  for (const string& layer_name : layer_names_) {
    DataIterator* it = data_it_[layer_name];
    if (it == NULL) continue;
    int num_dims = it->GetDims();
    Matrix::SetDevice(it->GetGPUId());
    Matrix& data = data_[layer_name];
    data.AllocateGPUMemory(num_dims, chunk_size_);
  }
}

DataHandler::~DataHandler() {
  for (auto it : data_it_) {
    delete it.second;
  }
}

void DataHandler::SetupShuffler() {
  rand_perm_indices_.AllocateGPUMemory(1, chunk_size_);
  float* cpu_rand_perm_indices = rand_perm_indices_.GetHostData();
  for (int i = 0; i < chunk_size_; i++) {
    cpu_rand_perm_indices[i] = i;
  }
  rand_perm_indices_.CopyToDevice();
}

void DataHandler::Seek(int row) {
  Sync();
  start_ = row;
  reuse_counter_ = 0;
  multiplicity_counter_ = 0;
  restart_ = true;
  for (auto it : data_it_) {
    it.second->Seek(row);
  }
}

void DataHandler::Sync() {
  if (pipeline_loads_) WaitForPreload();
}

void DataHandler::ShuffleIndices() {
  float* cpu_rand_perm_indices = rand_perm_indices_.GetHostData();
  const int dataset_size = rand_perm_indices_.GetCols();
  random_shuffle(cpu_rand_perm_indices, cpu_rand_perm_indices + dataset_size);
  rand_perm_indices_.CopyToDevice();
}

void DataHandler::GetBatch(vector<Layer*>& data_layers) {
  int end = start_ + batch_size_;
  if (end > chunk_size_ || restart_) {
    if (reuse_counter_ < max_reuse_count_ && !restart_) {
      reuse_counter_++;
    } else if (nothing_on_gpu_ || !fits_on_gpu_) {
      if (restart_ && pipeline_loads_) StartPreload();
      nothing_on_gpu_ = false;
      reuse_counter_ = 0;
      PipelinedDiskAccess();
    }
    restart_ = false;
    if (randomize_gpu_) {
      ShuffleIndices();
      for (Layer* l : data_layers) {
        const string& layer_name = l->GetName();
        Matrix& data = data_[layer_name];
        data.ShuffleColumns(rand_perm_indices_);
      }
    }
    start_ = 0;
    end = batch_size_;
  }

  // Sample jitter/noise.
  // This is done for all layers first because some layers may need the noise
  // from other layers to set their data. For example, if jitter is added to
  // the input, the bounding boxes in the output need to change accordingly.
  for (Layer* l : data_layers) {
    const string& layer_name = l->GetName();
    DataIterator* it = data_it_[layer_name];
    if (it == NULL) continue;
    Matrix::SetDevice(it->GetGPUId());
    Matrix& dest = l->IsInput() ? l->GetState() : l->GetData();
    it->SampleNoise(dest.GetRows(), dest.GetCols(), multiplicity_counter_);
  }

  for (Layer* l : data_layers) {
    const string& layer_name = l->GetName();
    DataIterator* it = data_it_[layer_name];
    if (it == NULL) continue;
    Matrix::SetDevice(it->GetGPUId());
    Matrix data_slice;
    data_[layer_name].GetSlice(data_slice, start_, end);
    Matrix& dest = l->IsInput() ? l->GetState() : l->GetData();

    // Add noise, if asked for, and copy to dest.
    it->AddNoise(data_slice, dest);
  }
  multiplicity_counter_++;
  if (multiplicity_counter_ == multiplicity_) {
    multiplicity_counter_ = 0;
    start_ = end;
  }
}

void DataHandler::PipelinedDiskAccess() {
  if (pipeline_loads_) {
    WaitForPreload();
  } else {
    DiskAccess();
  }

  for (const string& layer_name: layer_names_) {
    Matrix& data = data_[layer_name];
    DataIterator* it = data_it_[layer_name];
    if (it == NULL) continue;
    Matrix::SetDevice(it->GetGPUId());
    data.CopyToDevice();
    it->Preprocess(data);  // Does centering, normalization etc.
  }

  if (pipeline_loads_) {
    StartPreload();
  }
}

void DataHandler::StartPreload() {
  preload_thread_ = new thread(&DataHandler::DiskAccess, this);
}

void DataHandler::WaitForPreload() {
  if (preload_thread_ != NULL) {
    preload_thread_->join();
    delete preload_thread_;
    preload_thread_ = NULL;
  }
}

void DataHandler::DiskAccess() {
  vector<int> random_rows;
  if (randomize_cpu_) {
    for (int i = 0; i < chunk_size_; i += random_access_chunk_size_) {
      random_rows.push_back((*distribution_)(generator_));
    }
  }
  for (const string& layer_name: layer_names_) {
    DataIterator* it = data_it_[layer_name];
    if (it == NULL) continue;
    it->Prep(chunk_size_);
  }
  for (const string& layer_name: layer_names_) {
    DataIterator* it = data_it_[layer_name];
    if (it == NULL) continue;
    Matrix& data = data_[layer_name];
    if (randomize_cpu_) {
      if (it->DoParallelDiskAccess()) {
        LoadChunkParallel(*it, data, random_rows);
      } else {
        LoadChunk(*it, data, random_rows);
      }
    } else {
      if (it->DoParallelDiskAccess()) {
        LoadChunkParallel(*it, data);
      } else {
        LoadChunk(*it, data);
      }
    }
  }
}

void DataHandler::LoadChunk(DataIterator& it, Matrix& mat) {
  float* data_ptr = mat.GetHostData();
  int num_dims = it.GetDims();
  for (int i = 0; i < chunk_size_; i++) {
    it.GetNext(data_ptr);
    data_ptr += num_dims;
  }
}

void DataHandler::LoadChunk(DataIterator& it, Matrix& mat, vector<int>& random_rows) {
  float* data_ptr = mat.GetHostData();
  int num_dims = it.GetDims();
  int j = 0;
  for (int i = 0; i < chunk_size_; i++) {
    if (i % random_access_chunk_size_ == 0) {
      it.Seek(random_rows[j++]);
    }
    it.GetNext(data_ptr);
    data_ptr += num_dims;
  }
}

void DataHandler::LoadChunkParallel(DataIterator& it, Matrix& mat) {
  float* data_ptr = mat.GetHostData();
  int num_dims = it.GetDims();
  int row = it.Tell();
  #pragma omp parallel for
  for (int i = 0; i < chunk_size_; i++) {
    it.Get(data_ptr + i * num_dims, (row + i) % dataset_size_);
  }
  it.Seek((row + chunk_size_) % dataset_size_);
}

void DataHandler::LoadChunkParallel(DataIterator& it, Matrix& mat, vector<int>& random_rows) {
  float* data_ptr = mat.GetHostData();
  int num_dims = it.GetDims();
  #pragma omp parallel for
  for (int i = 0; i < chunk_size_; i++) {
    int row = (random_rows[i / random_access_chunk_size_] + i % random_access_chunk_size_) % dataset_size_;
    it.Get(data_ptr + i * num_dims, row);
  }
}

void DataHandler::SetFOV(const int size, const int stride,
                         const int pad1, const int pad2,
                         const int patch_size,
                         const int num_fov_x, const int num_fov_y) {

  for (const string& layer_name : layer_names_) {
    DataIterator* it = data_it_[layer_name];
    if (it == NULL) continue;
    it->SetFOV(size, stride, pad1, pad2, patch_size, num_fov_x, num_fov_y);
  }
}

DataIterator* DataIterator::ChooseDataIterator(const config::DataStreamConfig& config) {
  DataIterator* it = NULL;
  hid_t file, dataset, datatype;
  int size;
  switch (config.data_type()) {
    case config::DataStreamConfig::DUMMY:
      it = new DummyDataIterator(config);
      break;
    case config::DataStreamConfig::HDF5:
      file = H5Fopen(config.file_pattern().c_str(), H5F_ACC_RDONLY, H5P_DEFAULT);
      dataset = H5Dopen(file, config.dataset_name().c_str(), H5P_DEFAULT);
      datatype = H5Dget_type(dataset);
      size = H5Tget_size(datatype);
      if (H5Tget_class(datatype) == H5T_INTEGER) { // integer
        if (H5Tget_sign(datatype) == H5T_SGN_2) {  // signed integers.
          switch (size) {
            case 1: it = new HDF5DataIterator<char>(config); break;
            case 4: it = new HDF5DataIterator<int>(config); break;
            case 8: it = new HDF5DataIterator<long>(config); break;
          }
        } else {  // unsigned integers.
          switch (size) {
            case 1: it = new HDF5DataIterator<unsigned char>(config); break;
            case 4: it = new HDF5DataIterator<unsigned int>(config); break;
            case 8: it = new HDF5DataIterator<unsigned long>(config); break;
          }
        }
      } else {  // floating-point.
        switch (size) {
          case 4: it = new HDF5DataIterator<float>(config); break;
          case 8: it = new HDF5DataIterator<double>(config); break;
        }
      }
      H5Tclose(datatype);
      H5Dclose(dataset);
      H5Fclose(file);
      break;
    case config::DataStreamConfig::IMAGE_RAW:
      it = new ImageDataIterator(config);
      break;
    case config::DataStreamConfig::SLIDING_WINDOW:
      it = new SlidingWindowDataIterator(config);
      break;
    case config::DataStreamConfig::CROPS:
      it = new CropDataIterator(config);
      break;
    case config::DataStreamConfig::TXT:
      it = new TextDataIterator(config);
      break;
    case config::DataStreamConfig::BOUNDING_BOX:
      it = new BoundingBoxIterator(config);
      break;
    default:
      cerr << "Unknown data type " << config.data_type() << endl;
      exit(1);
  }
  return it;
}

DataIterator::DataIterator(const config::DataStreamConfig& config):
  num_dims_(0), dataset_size_(0), row_(0),
  file_pattern_(config.file_pattern()),
  noise_layer_name_(config.noise_layer_name()),
  num_colors_(config.num_colors()),
  gpu_id_(config.gpu_id()),
  translate_(config.can_translate()),
  flip_(config.can_flip()),
  normalize_(config.normalize() || config.pixelwise_normalize()),
  pixelwise_normalize_(config.pixelwise_normalize()),
  add_pca_noise_(config.pca_noise_stddev() > 0),
  parallel_disk_access_(config.parallel_disk_access()),
  pca_noise_stddev_(config.pca_noise_stddev()),
  jitter_used_(true),
  noise_source_(NULL) {}

void DataIterator::SetMaxDataSetSize(int max_dataset_size) {
  if (max_dataset_size > 0 && dataset_size_ > max_dataset_size) {
    dataset_size_ = max_dataset_size;
  }
}

void DataIterator::SetNoiseSource(DataIterator* it) {
  noise_source_ = it;
}

void DataIterator::LoadMeans(const string& data_file) {
  hid_t file = H5Fopen(data_file.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT);
  if (pixelwise_normalize_) {
    hid_t file = H5Fopen(data_file.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT);
    Matrix pixel_mean, pixel_std;
    pixel_mean.AllocateAndReadHDF5(file, "pixel_mean");
    pixel_std.AllocateAndReadHDF5(file, "pixel_std");
    pixel_mean.Reshape(1, -1);
    pixel_std.Reshape(1, -1);
    int num_channels = pixel_mean.GetCols();
    int num_pixels = num_dims_ / num_channels;
    mean_.AllocateGPUMemory(num_pixels, num_channels);
    std_.AllocateGPUMemory(num_pixels, num_channels);

    mean_.AddRowVec(pixel_mean);
    std_.AddRowVec(pixel_std);

    mean_.Reshape(-1, 1);
    std_.Reshape(-1, 1);
    if (add_pca_noise_) {
      eig_values_.AllocateAndReadHDF5(file, "S");
      eig_vectors_.AllocateAndReadHDF5(file, "U");
    }
  }
  else {
    mean_.AllocateAndReadHDF5(file, "mean");
    std_.AllocateAndReadHDF5(file, "std");
  }
  H5Fclose(file);
}

int DataIterator::GetDims() const {
  return num_dims_;
}

int DataIterator::GetDataSetSize() const {
  return dataset_size_;
}

void DataIterator::Seek(int row) {
  row_ = row;
}

int DataIterator::Tell() const {
  return row_;
}

void DataIterator::Prep(const int chunk_size) {
}

// m is on the GPU, stored so that different cases are far apart.
void DataIterator::Preprocess(Matrix& m) {
  if (normalize_) {
    m.AddColVec(mean_, -1);
    m.DivideByColVec(std_);
  }
}

void DataIterator::AddPCANoise(Matrix& m) {
  if (pca_noise1_.GetRows() != m.GetRows()) {
    pca_noise1_.AllocateGPUMemory(m.GetRows(), eig_vectors_.GetRows());
    pca_noise2_.AllocateGPUMemory(m.GetRows(), eig_vectors_.GetCols());
  }
  pca_noise1_.FillWithRandn();
  pca_noise1_.MultByRowVec(eig_values_);
  Matrix::Dot(pca_noise1_, eig_vectors_, pca_noise2_, 0, 1);
  m.AddToEachPixel(pca_noise2_, pca_noise_stddev_);
}

void DataIterator::AddNoise(Matrix& input, Matrix& output) {
  if (flip_ || translate_ || (output.GetCols() <  input.GetRows())) {
    Jitter(input, output);
  } else {
    input.CopyTranspose(output);
  }
  if (add_pca_noise_) {
    AddPCANoise(output);
  }
}

void DataIterator::SampleNoise(int batch_size, int dest_num_dims, int multiplicity_id) {
  if (dest_num_dims != num_dims_ || flip_) {
    int patch_size = (int)sqrt(dest_num_dims / num_colors_);
    int image_size = (int)sqrt(num_dims_ / num_colors_);
    int max_offset = image_size - patch_size;
    dest_num_dims_ = dest_num_dims;

    if (width_offset_.GetCols() != batch_size) {
      width_offset_.AllocateGPUMemory(1, batch_size);
      height_offset_.AllocateGPUMemory(1, batch_size);
      flip_bit_.AllocateGPUMemory(1, batch_size);
    }

    if (translate_) {  // Random jitter.
      width_offset_.FillWithRand();
      height_offset_.FillWithRand();
      width_offset_.Mult(max_offset + 1);  // Rounded down.
      height_offset_.Mult(max_offset + 1);  // Rounded down.
    } else {  // Take center or corner patch.
      int w = 0, h = 0;
      switch (multiplicity_id % 5) {
        case 0: w = max_offset/2; h = max_offset/2; break;
        case 1: w = 0; h = 0; break;
        case 2: w = max_offset; h = 0; break;
        case 3: w = max_offset; h = max_offset; break;
        case 4: w = 0; h = max_offset; break;
      }
      width_offset_.Set(w);
      height_offset_.Set(h);
    }
    if (flip_) {
      flip_bit_.FillWithRand();  // flip if > 0.5.
    } else {
      flip_bit_.Set(multiplicity_id/5);
    }
  }
}

void DataIterator::Jitter(Matrix& source, Matrix& dest) {
  int patch_size = (int)sqrt(dest.GetCols() / num_colors_);
  int image_size = (int)sqrt(source.GetRows() / num_colors_);

  // Extract jittered images.
  Matrix::ExtractPatches(source, dest, width_offset_, height_offset_, flip_bit_, image_size, image_size, patch_size, patch_size);
}

void DataIterator::SetFOV(const int size, const int stride,
                          const int pad1, const int pad2, const int patch_size,
                          const int num_fov_x, const int num_fov_y) {
  // no op.
}

DummyDataIterator::DummyDataIterator(const config::DataStreamConfig& config):
  DataIterator(config) {
    num_dims_ = 100;
    dataset_size_ = 100000;
  if (normalize_) {
    LoadMeans(config.mean_file());
  }
}

void DummyDataIterator::Get(float* data_out, const int row) const {
  for (int i = 0; i < num_dims_; i++) {
    data_out[i] = rand();
  }
}

void DummyDataIterator::GetNext(float* data_out) {
  Get(data_out, 0);
}

template <typename T>
HDF5DataIterator<T>::HDF5DataIterator(const config::DataStreamConfig& config):
  DataIterator(config) {

  // Open the hdf5 file and dataset.
  file_ = H5Fopen(file_pattern_.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT);
  size_t cache_size = 1024 * 1024 * 1024;
  dapl_id_ = H5Pcreate(H5P_DATASET_ACCESS);
  H5Pset_chunk_cache(dapl_id_, H5D_CHUNK_CACHE_NSLOTS_DEFAULT, cache_size, H5D_CHUNK_CACHE_W0_DEFAULT);
  dataset_ = H5Dopen(file_, config.dataset_name().c_str(), dapl_id_);
  hid_t dataspace = H5Dget_space(dataset_);
  hsize_t dims_out[2];
  const int ndims = H5Sget_simple_extent_ndims(dataspace);
  H5Sget_simple_extent_dims(dataspace, dims_out, NULL);
  dataset_size_ = dims_out[0];
  num_dims_ = (ndims == 1) ? 1: dims_out[1];
  start_[0] = 0;
  start_[1] = 0;
  count_[0] = 1;
  count_[1] = num_dims_;
  H5Sclose(dataspace);
  m_dataspace_ = H5Screate_simple(2, count_, NULL);
  type_ = H5Dget_type(dataset_);

  buf_ = new T[num_dims_];

  /*
   * Check if gzip compression is available and can be used for both
   * compression and decompression.
   */
  htri_t avail = H5Zfilter_avail(H5Z_FILTER_DEFLATE);
  if (!avail) {
    printf ("gzip filter not available.\n");
  }
  unsigned int filter_info;
  H5Zget_filter_info (H5Z_FILTER_DEFLATE, &filter_info);
  if ( !(filter_info & H5Z_FILTER_CONFIG_ENCODE_ENABLED) ||
      !(filter_info & H5Z_FILTER_CONFIG_DECODE_ENABLED) ) {
    printf ("gzip filter not available for encoding and decoding.\n");
  }
  if (normalize_) {
    LoadMeans(config.mean_file());
  }
}

template <typename T>
HDF5DataIterator<T>::~HDF5DataIterator() {
  delete buf_;
  H5Tclose(type_);
  H5Sclose(m_dataspace_);
  H5Pclose(dapl_id_);
  H5Dclose(dataset_);
  H5Fclose(file_);
}

template <typename T>
void HDF5DataIterator<T>::Get(float* data_ptr, const int row) const {
  hsize_t start[2];
  start[0] = row;
  start[1] = 0;
  T* buf = new T[num_dims_];
  hid_t f_dataspace = H5Dget_space(dataset_);
  H5Sselect_hyperslab(f_dataspace, H5S_SELECT_SET, start, NULL, count_, NULL);
  H5Dread(dataset_, type_, m_dataspace_, f_dataspace, H5P_DEFAULT, buf);
  H5Sclose(f_dataspace);

  // Copy and type-cast from buf_ to data_ptr.
  for (int i = 0; i < num_dims_; i++) {
    data_ptr[i] = static_cast<float>(buf[i]);
  }
  delete buf;
}

template <typename T>
void HDF5DataIterator<T>::GetNext(float* data_ptr) {
  start_[0] = row_;
  hid_t f_dataspace = H5Dget_space(dataset_);
  H5Sselect_hyperslab(f_dataspace, H5S_SELECT_SET, start_, NULL, count_, NULL);
  H5Dread(dataset_, type_, m_dataspace_, f_dataspace, H5P_DEFAULT, buf_);
  H5Sclose(f_dataspace);

  // Copy and type-cast from buf_ to data_ptr.
  for (int i = 0; i < num_dims_; i++) {
    data_ptr[i] = static_cast<float>(buf_[i]);
  }

  row_++;
  if (row_ == dataset_size_) row_ = 0;
}

ImageDataIterator::ImageDataIterator(const config::DataStreamConfig& config):
  DataIterator(config),
  raw_image_size_(config.raw_image_size()),
  image_size_(config.image_size()) {

  bool avg10_full_image = config.avg10_full_image();

  if (config.bbox_file().empty()) {
    it_ = new RawImageFileIterator<unsigned char>(
        file_pattern_, image_size_, raw_image_size_, avg10_full_image, avg10_full_image,
        config.random_rotate_raw_image(), config.random_rotate_max_angle(),
        config.min_scale());
  } else {
    it_ = new BBoxImageFileIterator<unsigned char>(
        file_pattern_, config.bbox_file(), image_size_, raw_image_size_, avg10_full_image, avg10_full_image,
        config.random_rotate_raw_image(), config.random_rotate_max_angle(),
        config.min_scale(), config.context_factor(), config.center_on_bbox());
  }

  dataset_size_ = it_->GetDataSetSize();
  num_dims_ = image_size_ * image_size_ * num_colors_;
  buf_ = new unsigned char[num_dims_];
  if (normalize_) {
    LoadMeans(config.mean_file());
  }
}

ImageDataIterator::~ImageDataIterator() {
  delete buf_;
  delete it_;
}

void ImageDataIterator::Seek(int row) {
  it_->Seek(row);
}

int ImageDataIterator::Tell() const {
  return it_->Tell();
}

void ImageDataIterator::SetMaxDataSetSize(int max_dataset_size) {
  it_->SetMaxDataSetSize(max_dataset_size);
  dataset_size_ = it_->GetDataSetSize();
}

void ImageDataIterator::Prep(const int chunk_size) {
  it_->SampleNoiseDistributions(chunk_size);
}

void ImageDataIterator::RectifyBBox(box& b, int width, int height, int row) const {
  it_->RectifyBBox(b, width, height, row);
}

void ImageDataIterator::GetNext(float* data_out) {
  it_->GetNext(buf_);
  for (int i = 0; i < image_size_ * image_size_ * num_colors_; i++) {
    data_out[i] = static_cast<float>(buf_[i]);
  }
}

void ImageDataIterator::Get(float* data_out, const int row) const {
  unsigned char* buf = new unsigned char[num_dims_];
  it_->Get(buf, row, 0);
  for (int i = 0; i < image_size_ * image_size_ * num_colors_; i++) {
    data_out[i] = static_cast<float>(buf[i]);
  }
  delete buf;
}

SlidingWindowDataIterator::SlidingWindowDataIterator(
    const config::DataStreamConfig& config):
  DataIterator(config), stride_(config.stride()),
  raw_image_size_(config.raw_image_size()),
  image_size_(config.image_size()),
  file_id_(0) {
  num_dims_ = image_size_ * image_size_ * num_colors_;
  it_ = new SlidingWindowIterator<unsigned char>(image_size_, stride_);
  buf_ = new unsigned char[num_dims_];
  ReadLines(file_pattern_, file_names_);
  dataset_size_ = file_names_.size() * it_->GetNumWindows();
  if (normalize_) {
    LoadMeans(config.mean_file());
  }
}

SlidingWindowDataIterator::~SlidingWindowDataIterator() {
  delete buf_;
  delete it_;
}

void SlidingWindowDataIterator::SetMaxDataSetSize(int max_dataset_size) {
  max_dataset_size *= it_->GetNumWindows();
  if (max_dataset_size > 0 && dataset_size_ > max_dataset_size) {
    dataset_size_ = max_dataset_size;
  }
}

void SlidingWindowDataIterator::Seek(int row) {
  file_id_ = row;
}

int SlidingWindowDataIterator::Tell() const {
  return file_id_;
}

void SlidingWindowDataIterator::Get(float* data_out, const int row) const {
  cerr << "Not implemented" << endl;
  exit(1);
}

void SlidingWindowDataIterator::GetNext(float* data_out) {
  if (it_->Done()) {
    it_->SetImage(file_names_[file_id_++]);
    if (file_id_ == file_names_.size()) file_id_ = 0;
  }
  it_->GetNext(buf_);
  for (int i = 0; i < image_size_ * image_size_ * num_colors_; i++) {
    data_out[i] = static_cast<float>(buf_[i]);
  }
}

CropDataIterator::CropDataIterator(const config::DataStreamConfig& config):
  DataIterator(config), image_size_(config.image_size()), file_id_(0) {
  num_dims_ = image_size_ * image_size_ * num_colors_;
  it_ = new CropIterator<unsigned char>(image_size_, config.context_factor(), config.warp_bbox());
  buf_ = new unsigned char[num_dims_];
  ReadLines(file_pattern_, file_names_);

  ifstream f(config.bbox_file(), ios::in);
  string line;
  dataset_size_ = 0;
  // The format for each line is -
  // <width> <height> <xmin1> <ymin1> <xmax1> <ymax1> <xmin2> <ymin2> ...
  while (getline(f, line)) {
    istringstream iss(line);
    vector<string> tokens;
    copy(istream_iterator<string>(iss), istream_iterator<string>(),
         back_inserter<vector<string> >(tokens));
    int num_tokens = tokens.size();
    if (num_tokens == 0 || num_tokens % 5 != 0) {
      cerr << "Error parsing line " << line << endl;
      exit(1);
    }
    int num_boxes = num_tokens / 5;
    vector<box> b_list (num_boxes);
    for (int i = 0; i < num_boxes; i++) {
      b_list[i].xmin = atoi(tokens[5*i  ].c_str());
      b_list[i].ymin = atoi(tokens[5*i+1].c_str());
      b_list[i].xmax = atoi(tokens[5*i+2].c_str());
      b_list[i].ymax = atoi(tokens[5*i+3].c_str());
      // 5th number is the box weight, not relevant here.
    }
    crops_.push_back(b_list);
    dataset_size_ += b_list.size();
  }
  f.close();

  if (normalize_) {
    LoadMeans(config.mean_file());
  }
}

CropDataIterator::~CropDataIterator() {
  delete buf_;
  delete it_;
}

void CropDataIterator::Seek(int row) {
  file_id_ = row;
}

int CropDataIterator::Tell() const {
  return file_id_;
}

void CropDataIterator::Get(float* data_out, const int row) const {
  cerr << "Not implemented" << endl;
  exit(1);
}

void CropDataIterator::GetNext(float* data_out) {
  if (it_->Done()) {
    it_->SetImage(file_names_[file_id_], crops_[file_id_]);
    file_id_++;
    if (file_id_ == crops_.size()) file_id_ = 0;
  }
  it_->GetNext(buf_);
  for (int i = 0; i < image_size_ * image_size_ * num_colors_; i++) {
    data_out[i] = static_cast<float>(buf_[i]);
  }
}

TextDataIterator::TextDataIterator(const config::DataStreamConfig& config):
  DataIterator(config) {
  ifstream f(file_pattern_, ios::in);
  string line;
  getline(f, line);
  istringstream iss(line);
  vector<string> tokens;
  copy(istream_iterator<string>(iss), istream_iterator<string>(),
       back_inserter<vector<string> >(tokens));
  num_dims_ = tokens.size();
  dataset_size_ = 1;
  while (getline(f, line)) dataset_size_++;
  data_ = new float[num_dims_ * dataset_size_];
  f.close();
  ifstream g(file_pattern_, ios::in);
  for (int i = 0; i < dataset_size_; i++) {
    g >> data_[i];
  }
  g.close();
  if (normalize_) {
    LoadMeans(config.mean_file());
  }
}

TextDataIterator::~TextDataIterator() {
  delete data_;
}

void TextDataIterator::Get(float* data_out, const int row) const {
  memcpy(data_out, data_ + num_dims_ * row, sizeof(float) * num_dims_);
}

void TextDataIterator::GetNext(float* data_out) {
  Get(data_out, row_);
  row_++;
  if (row_ == dataset_size_) row_ = 0;
}

BoundingBoxIterator::BoundingBoxIterator(const config::DataStreamConfig& config):
  DataIterator(config), jitter_source_(NULL) {
  ifstream f(file_pattern_, ios::in);
  string line;
  // The format for each line is -
  // <width> <height> <xmin1> <ymin1> <xmax1> <ymax1> <xmin2> <ymin2> ...
  while (getline(f, line)) {
    istringstream iss(line);
    vector<string> tokens;
    copy(istream_iterator<string>(iss), istream_iterator<string>(),
         back_inserter<vector<string> >(tokens));
    int num_tokens = tokens.size();
    if (num_tokens <= 2 || (num_tokens - 2) % 4 != 0) {
      cerr << "Error parsing line " << line << endl;
      exit(1);
    }
    int width = atoi(tokens[0].c_str());
    int height = atoi(tokens[1].c_str());
    int num_boxes = (num_tokens - 2) / 4;
    vector<box> b_list (num_boxes);
    for (int i = 0; i < num_boxes; i++) {
      b_list[i].xmin = atoi(tokens[2+4*i  ].c_str());
      b_list[i].ymin = atoi(tokens[2+4*i+1].c_str());
      b_list[i].xmax = atoi(tokens[2+4*i+2].c_str());
      b_list[i].ymax = atoi(tokens[2+4*i+3].c_str());
    }
    data_.push_back(b_list);
    img_width_.push_back(width);
    img_height_.push_back(height);
  }
  f.close();
  dataset_size_ = data_.size();
}

float BoundingBoxIterator::Intersection(const box& b1, const box& b2) {
  float x_overlap = MAX(0, MAX(b1.xmin, b2.xmin) - MIN(b1.xmax, b2.xmax));
  float y_overlap = MAX(0, MAX(b1.ymin, b2.ymin) - MIN(b1.ymax, b2.ymax));
  return x_overlap * y_overlap;
}

float BoundingBoxIterator::Area(const box& b) {
  return (b.xmax - b.xmin) * (b.ymax - b.ymin);
}

float BoundingBoxIterator::VisibleFraction(const box& b, const box& fov) {
  return Intersection(b, fov) / Area(b);
}

void BoundingBoxIterator::Get(float* data_out, const int row) const {
  int num_fovs = num_dims_ / 4;
  vector<box> b_list(data_[row]);
  int width = img_width_[row];
  int height = img_height_[row];
  for (box& b: b_list) {
    if (jitter_source_ != NULL) {
      jitter_source_->RectifyBBox(b, width, height, row);
    }
    b.xmin /= patch_size_;
    b.xmax /= patch_size_;
    b.ymin /= patch_size_;
    b.ymax /= patch_size_;
  }
  for (int i = 0; i < num_fovs; i++) {
    const box &fov = fov_box_[i];

    // Find the bounding box that is most visible from this field of view.
    int best_box = 0;
    if (b_list.size() > 1) {
      float f_best = VisibleFraction(b_list[0], fov), f;
      for (int j = 1; j < b_list.size(); j++) {
        f = VisibleFraction(b_list[j], fov);
        if (f > f_best) {
          best_box = j;
          f_best = f;
        }
      }
    }
    const box& b = b_list[best_box];
    data_out[i               ] = b.xmin;
    data_out[i +     num_fovs] = b.ymin;
    data_out[i + 2 * num_fovs] = b.xmax;
    data_out[i + 3 * num_fovs] = b.ymax;
  }
}

void BoundingBoxIterator::GetNext(float* data_out) {
  Get(data_out, row_);
  row_++;
  if (row_ == dataset_size_) row_ = 0;
}

void BoundingBoxIterator::SetFOV(
    const int size, const int stride, const int pad1, const int pad2,
    const int patch_size, const int num_fov_x, const int num_fov_y) {
  patch_size_ = patch_size;

  float fov_size   = (float)size / patch_size;
  float fov_stride = (float)stride / patch_size;
  float fov_pad1   = (float)pad1 / patch_size;

  int num_fovs = num_fov_y * num_fov_x;
  num_dims_ = 4 * num_fovs;
  fovs_.AllocateGPUMemory(1, num_dims_);

  float* fov = fovs_.GetHostData();
  fov_box_.resize(num_fovs);

  for (int i = 0; i < num_fovs; i++) {
    box &b = fov_box_[i];

    int r = i / num_fov_x, c = i % num_fov_x;
    b.xmin = -fov_pad1 + fov_stride * c;
    b.ymin = -fov_pad1 + fov_stride * r;
    b.xmax = b.xmin + fov_size;
    b.ymax = b.ymin + fov_size;

    fov[i]                = b.xmin;
    fov[i + num_fovs]     = b.ymin;
    fov[i + 2 * num_fovs] = b.xmin;
    fov[i + 3 * num_fovs] = b.ymin;
  }
  fovs_.CopyToDevice();
}

void BoundingBoxIterator::AddNoise(Matrix& input, Matrix& output) {
  if (noise_source_ != NULL) {
    input.CopyTranspose(output);
    output.RectifyBBox(noise_source_->GetWidthOffset(),
                       noise_source_->GetHeightOffset(),
                       noise_source_->GetFlipBit(),
                       patch_size_, patch_size_);
    output.AddRowVec(fovs_, -1);
  }
}
void BoundingBoxIterator::SetNoiseSource(DataIterator* it) {
  DataIterator::SetNoiseSource(it);
  jitter_source_ = dynamic_cast<ImageDataIterator*>(it);
  // It's fine if this turns out to be NULL.
}

redpajama_set_name: RedPajamaGithub


5 Steps Guaranteed to Increase Your Sales in 2017!
All of our training sessions can be customized to meet your team and time needs.
Call us at 847-577-2000 to discuss how we can help you maximize your team results this year.
My team and I look forward to helping you notch up the game and increase your business revenue quickly.


AXA College Scholarship for high school seniors with outstanding achievement in school, community, or work activities | Back to Basics Learning Dynamics, Inc.
This scholarship is for current high school seniors who plan to enroll full-time in an accredited two- or four-year college/university in the United States for the entire 2013-2014 school year. To qualify for this scholarship, applicants must demonstrate ambition and self-drive, as evidenced by outstanding achievement in school, community, or work activities. They must also be US citizens or legal residents living or claiming residency in one of the 50 US states, the District of Columbia, or Puerto Rico.
Primary consideration will be given to applicants' non-academic outstanding achievement, such as a long-term achievement, activity, or project that occurred in their school, community, or workplace.
In order to receive consideration, applicants must be one of the first 10,000 people to submit an application. Employees. For more information, CLICK HERE.
SAT Subject Tests are January 26. Register by December 28!


How can i Reach to Xbox?
The Xbox is a prominent and well-renowned brand of video games which is manufactured by the American based leading multinational corporation named Microsoft Corporation. The Xbox is engaged in production of various kind of video games consoles series which includes Xbox, Xbox 360, Xbox one and much more. The aim of Xbox is to provide various kind of games with world-class quality, latest technology and graphics which includes action games, sports games, fighting games etc under the names of 007: Agent Under Fire, Advent Rising, Air Conflicts, Beijing 2008, Duke Nukem 3D, 007 Legends, 2006 FIFA World Cup, Afro Samurai and much more. Besides this, the company makes complete range of video games controllers to all generations of Xbox.
This service permits users to download or buy video games such as Xbox Live Arcade and Xbox 360 on officially website and other online game websites. In addition, users can also access add-ons, updates for their games including new images, graphics and themes.
A leading video games brand, Xbox came into existence in the year 2001. The Xbox was originally emerged with its first video games console named Xbox. The Xbox launched its first controller in the year 2001 for the Xbox console with various features like two analog triggers, a Start button, two analog sticks and many more. The company performs all kind of business segments through the administrative office that is situated in USA.
The Xbox is an integrated part of the Microsoft Corporation. Microsoft Corporation is a worldwide firm in the production of innovative and world-class products related to various business segments such as Computer software and hardware, consumer electronics and much more. The Microsoft Corporation was unfolded in the year 1975 with the hard work of Bill Gates and Paul Allen. The Corresponding services of Xbox service center are Xbox Service Alert, Xbox Service Center Phone Number, Xbox Service Center Number, Xbox Service Center Access Denied, Xbox Service Center Address, Xbox Service Status and Xbox Service Request Number.
For more information related to Xbox products and customer services, visit on its officially website.


An artist known as the Invisible Man strikes again as he blends into his surroundings at Ground Zero.
Liu Bolin, from China, painted himself from head-to-toe to become suitably camouflaged in front of Freedom Tower, where the Twin Towers once stood, in New York.
The work is dedicated to the memory of those killed in America's worst terrorist attacks on September 11, 2001.
Hiding In New York, his latest exhibition, has just opened at the Eli Klein Gallery in the city.
A gallery spokesman said: 'The newest releases show different perspectives on the legacy of September 11.
'The composition of Ground Zero is serene; its colours are quiet and subdued.
'The new Freedom Tower appears barely visible through the fog, its shadowy presence reflecting our trepidation about recovering from the trauma of the event.
Other works displayed in Liu's fourth solo exhibition include the artist camouflaged in front of panda toys; standing in the Yellow River in China; and hiding in a supermarket surrounded by Coca-Cola bottles and other top brands.
Previous work has included him blending into an iconic red British telehpone box and standing attention next to a cannon.
Liu claims his art makes a statement about his place in society and sees himself as an outsider whose artistic efforts are not appreciated, especially in his home country.
He has previously said: 'Some people call me the invisible man, but for me it's what is not seen in a picture which is really what tells the story.
'After graduating from school I couldn't find suitable work and I felt there was no place for me in society.
'I experienced the dark side of society, without social relations, and had a feeling that no one cared about me, I felt myself unnecessary in this world.
For more information visit www.elikleinfineart.com.


text:
Students' reward? Capitol tour
In solemn silence before the Tomb of the Unknown Soldier, two College of the Mainland Upward Bound students Maria Camargo from Dickinson High School and Tavien Hearne from Hitchcock High School laid a wreath honoring those who gave their lives.
It marked the pinnacle of a trip to Washington D.C. for 19 students in the COM Upward Bound Program, which assists low-income, disabled high school students or those who will be the first in their families to go to college. Upward Bound students who excelled throughout the year earned their spots on the trip, which included exploring Capitol Hill, touring the National Air and Space Museum and walking the halls of Mount Vernon..
"I've never traveled outside of Texas. I enjoyed the Lincoln Memorial and being able to look down the water," said student Kobie Vinson, from Hitchcock High School. "We toured the Smithsonian and Arlington National Cemetery. My favorite part was learning how much land George Washington owned."
Upward Bound encourages high school students to attend the college they select, and students toured Howard University and George Washington University.
"I want to major in computer engineering," said student Daniel Anders, from La Marque High School. "At Howard University the computer labs were better than most colleges I've seen so far. Their labs were state-of-the-art."
The trip included lessons in how the government works.
"A private tour guide took us through D.C. We went to the Supreme Court and talked about upcoming cases," said Ciro Reyes, COM director of Upward Bound and Student Support Services.
Upward Bound assists students year-round through tutoring, academic advising, workshops, a laptop-lending program, and college and university tours. In the summer, students can join a six-week college experience to prepare them for the new school year.
"The program wants students to be well-rounded," explained Reyes. "It helps students go on educational and cultural trips. We want to make sure students are successful in high school, college and in their careers."
Upward Bound and its sister program, Student Support Services, for low-income, disabled and first-generation college students, began at COM in 2001.
For more information on Upward Bound programs, visit www.com.edu/trio or call 409-933-8273.
upward bound trio student support services


Water is the blood of the Earth and flows through its muscles and veins.
Therefore it is said that water is something that has complete faculties.
Water is accumulated in Heaven and Earth, and stored up in all the things of the world.
It is concentrated in living creatures.
Therefore it is said that water is something spiritual.
Humans are water. It is our refined essence.
There is not one of the various things which is not produced through it.
It is only the person who knows how to rely on water's principles who can act properly.
Hence, the solution for the Sage who would transform the world lies in water.
When water is uncontaminated, people's hearts are upright.
When water is pure, people's hearts are at ease.
People's hearts being upright, their desires do not become dissolute. People's hearts being upright, their conduct is without evil.
Hence the Sage does not teach people one by one, or house by house, but takes water as his key.
This entry was posted in Beauty, Choices for Water, Intelligent Design, philosophy, Photography, Stewardship and tagged balance of water, civilizations and water, environment, the meaning of water, water, water flowing, Water Is, water is magic, water on Earth. Bookmark the permalink.


The professional matchmakers and dating coaches at Master Matchmakers have helped create long-lasting relationships for Houston singles since 2009. For years we've been making outstanding matches throughout the state of Texas.
We represent Greater Houston singles from West University, Greater Memorial, Rice, River Oaks, Galleria-Uptown and beyond. We can focus on finding the ideal match for you wheverever you like.
Master Matchmakers has strict criteria for who we'll represent. Criminal background checks and personal interviews are conducted on everyone we match. We strive to create a safe, worry-free experience for our clients. We strive to be Houston's premiere destination for high-end matchmaking and personal coaching.


text:
Maximino "Max" Arciniega (* 20. Juli 1987 in Chicago, Illinois) ist ein US-amerikanischer Schauspieler.

Werdegang
Maximino Arciniega wurde als Sohn mexikanischer Migranten in der Stadt Chicago geboren, wo er im Stadtbezirk Northwest Side, aufwuchs. Nach dem Abschluss der Steinmetz High School besuchte er in seiner Heimatstadt auch das Columbia College, das er mit einem Bachelor of Fine Arts in Theater abschloss. Anschließend stand er für verschiedene Produktionen auf der Theaterbühne, bevor er nach Los Angeles zog.

Seine erste Schauspielrolle übernahm er 2004 in dem Film Barbershop 2. Danach folgten u. a. Gastauftritte in Serien wie Veronica Mars und Private Practice, bevor er 2008 durch die Rolle des Krazy-8 in der Erfolgsserie Breaking Bad größere Bekanntheit erlangte. Im Spin-off Better Call Saul ist er seit 2016 in dieser Rolle erneut zu sehen.

Weitere Serienauftritte folgten in The Unit – Eine Frage der Ehre, Lie to Me, Emergency Room – Die Notaufnahme, Fringe – Grenzfälle des FBI, Castle, Grimm, Navy CIS: New Orleans und Chance. In den Serien Blood & Oil, Bordertown und der Miniserie Unbelievable übernahm Arciniega wiederkehrende Rollen.

2020 eröffnete er die MA School of Acting in seiner Heimatstadt. Er ist Fan der Chicago Cubs.

Filmografie (Auswahl)
 2004: Barbershop 2
 2004: Boricua
 2006: E-Ring – Military Minds (E-Ring, Fernsehserie, Episode 1x16)
 2006: Veronica Mars (Fernsehserie, Episode 2x18)
 2007: Private Practice (Fernsehserie, Episode 1x01)
 2008: Without a Trace – Spurlos verschwunden (Without a Trace, Fernsehserie, Episode 6x11)
 2008: Breaking Bad (Fernsehserie, 3 Episoden)
 2008: The Unit – Eine Frage der Ehre (The Unit, Fernsehserie, Episode 4x04)
 2009: Emergency Room – Die Notaufnahme (ER, Fernsehserie, Episode 15x12)
 2009: Lie to Me (Fernsehserie, Episode 2x03)
 2010: Blue Bloods – Crime Scene New York (Blue Bloods, Fernsehserie, Episode 1x07)
 2011: Valley of the Sun
 2011: Haywire
 2012: Fringe – Grenzfälle des FBI (Fringe, Fernsehserie, Episode 4x17)
 2012: Castle (Fernsehserie, Episode 5x07)
 2014: The Barber
 2014: Grimm (Fernsehserie, Episode 4x08)
 2015: Blood & Oil (Fernsehserie, 4 Episoden)
 2016: Navy CIS: New Orleans (NCIS: New Orleans, Fernsehserie, Episode 2x13)
 2016–2020: Better Call Saul (Fernsehserie, 7 Episoden)
 2016: Bordertown (Fernsehserie, 4 Episoden, Stimme)
 2017: Colony (Fernsehserie, 5 Episoden)
 2017: Bosch (Fernsehserie, 7 Episoden)
 2017: Chance (Fernsehserie, Episode 2x09)
 2019: Unbelievable (Fernsehserie, 4 Episoden)
 2020: Hard Luck Love Song
 2021: Old Henry

Weblinks

Einzelnachweise

Filmschauspieler
Theaterschauspieler
US-Amerikaner
Geboren 1987
Mann

redpajama_set_name: RedPajamaWikipedia


The area is a collection of islands, with inhabitants consisting of a mixture between creatures from ARK prime (The Island) and Scorched Earth.
This region is very hot, so a high Fortitude and heat-resistant armor are recommended.
Beware of dangerous predators which lurk on some of the larger islands.


text:
package org.kie.workbench.common.screens.examples.service;

import java.util.Set;

import org.guvnor.common.services.project.context.ProjectContextChangeEvent;
import org.jboss.errai.bus.server.annotations.Remote;
import org.kie.workbench.common.screens.examples.model.ExampleOrganizationalUnit;
import org.kie.workbench.common.screens.examples.model.ExampleProject;
import org.kie.workbench.common.screens.examples.model.ExampleRepository;
import org.kie.workbench.common.screens.examples.model.ExampleTargetRepository;
import org.kie.workbench.common.screens.examples.model.ExamplesMetaData;
import org.uberfire.commons.lifecycle.PriorityDisposable;

@Remote
public interface ExamplesService extends PriorityDisposable {

    String EXAMPLES_SYSTEM_PROPERTY = "org.kie.demo";

    ExamplesMetaData getMetaData();

    Set<ExampleProject> getProjects( final ExampleRepository repository );

    boolean validateRepositoryName( final String name );

    ProjectContextChangeEvent setupExamples( final ExampleOrganizationalUnit exampleTargetOU,
                                             final ExampleTargetRepository exampleTarget,
                                             final Set<ExampleProject> exampleProjects );

}


text:
package org.spash.broad.hash;

import org.spash.Shape;
import org.spash.ray.Ray;

/**
 * Creates spans for shapes and rays.
 */
public interface SpanFactory {
    /**
     * Creates a span for a shape.
     *
     * @param shape Shape to create span for
     * @return span
     */
    Span createShapeSpan(Shape shape);
    /**
     * Creates a span for a ray.
     *
     * @param ray
     * @return span
     */
    Span createRaySpan(Ray ray);
}