Metering somewhat for the bright sun left the rest of the frame underexposed, which allowed what little color there was in the sky to be exaggerated.
The sun got dimmer as it dipped into the haze, so the exposure could be closer to normal, so the shots above and below are closer to how it actually looked.
It's moments after this shot that the boat seen in yesterday's post came motoring along.
As I said yesterday, it was boring compared to the previous day's sunset, but relaxing.
It is really fun for me to follow your photo blog, the way you mix pictures of Anthony with landscapes. I've got three boys and have a hard time doing what you do.
If you ever feel like writing up your workflow I would love to read it, since you mention that you shoot RAW. I am mostly happy with the way my shots come out in JPG, but I just can't get the colors in RAW to look anything as good as the JPGs (or how my memory is) nor as good as the colors which all your images have. I've read everything I can on the flickr forums regarding Nikon Raw files and Lightroom (2.3) but I am a long way from getting it. I have owned a DSLR for some time but it is only over the last couple of months that I have really gotten hooked on it.
Where I am currently (Knysna, South Africa) there are amazing blue skies and sea colors, but I can't get the RAWS to display that in LR, and I want to as I really like using LR.
P.S. I should add that I am red /green color blind.
Thanks, I had missed your workflow post. I searched for all sorts of things, but missed the obvious "worklfow".
I thought that maybe you had made a specific preset for your RAW processing but it looks like you do that manually. Ok, I will keep playing. Obviously it is doable, I just haven't figured out that combination of white balance, camera profile, fill light etc which will give me what I want.


31540 RA6147.jpg 500X638\RA6147.jpg 31541 RA6147_1.jpg 500X638\RA6147_1.jpg Send A Hint!
Product Description: less text Help that spiritual person in your life stay connected to God with the inspiring 'Fresh Start: The New You Begins Today' by Joel Osteen. This guide provides insight and encouragement to help one stay connected to God, allowing them to accomplish their goals in life. This eye-opening book also comes with a pen to jot down those thoughts. Send now! Get this Fresh Start Book And Pen delivered with NetFlorist.


text:
Q: can't create desktop launchers in ubuntu 18.04, not even in root Please help me figure out how to create desktop shortcuts/launchers/whatever. When i try to copy and paste .desktop files from /usr/local/share or /usr/share, i get "permission is denied", even when I'm running file manager in root via pkexec. Same for when I try to create desktop launchers via "create launcher" in desktop operation. I tried editing the .desktop files I'm trying to get on my desktop (firefox and firestorm) to run its executions in root as well, permission still denied.
Any ideas? It doesn't even seem possible to me that while running in root I'm being denied permission to do anything.
edit note: I previously had referenced related articles I'd tried, but I can't seem to find the specific ones anymore, except: can't put .desktop into /usr/share/applications . basically, the articles recommended the three things i've tried: running file manager in root; logging in as administrator; edit .desktop files to run in root.

A: fixed it by changing permissions of Desktop from root to user with chown:
opening home/[username]/;
doing sudo su, entering user password;
using
chown [username] Desktop/
voila

redpajama_set_name: RedPajamaStackExchange


Dear MORE magazine: Would you print a little piece called "Are Nurses Ruining Our Hospitals?"
Lots of sound, more than a little fury. And about 95% solidly pro-professional teacher and public education. Doesn't get much better than that.
NBC's promoting the "advantages" of destroying an entire educational community in a devastating, lethal--and preventable--flood? Really? Shameful.
Perhaps it's time to stop dividing people into "our side" and "their side" and start the hard work of deconstructing popular policies and media-driven narratives. It's not about winning. It's about making better public schools for all kids.
At last--a teacher who takes swift action against disrespectful punks and teaches them a lesson! But what's the real takeaway?
So why aren't teachers out there making their own inflammatory films and outrageous statements? Why don't we carry insulting signs, wear funny hats and gather on the Mall for no discernible purpose?
What made Bob an excellent teacher was the very fact that he was a generalist. Every kid in that system learned about science from a man who was broadly knowledgeable, showing them the function of scientific principles in their everyday life and modeling curiosity about the way the world works.
Is there more to education than dispensing knowledge and skills? Does the community school still have a place?
Have we squandered the terrible momentum engendered by that day in September?
If things were not perceived to be uniformly ghastly, we may be looking at investment and transformation over time for our most challenged public schools. Building on what we have. Hope. But no.
Teachers--what are your back-to-school dreams?


On behalf of The Law Office Of Mitchell A. Greenberg posted in workers' compensation on Friday, September 14, 2018.
When you have been injured on the job, workers' compensation benefits can provide some measure of financial security for you and your family during a time when you may feel like your life is being turned upside down. Workers' compensation benefits in Maryland can provide important protections to injured workers, and all workers should be familiar with them.
Workers' compensation benefits include benefits for injured workers who find themselves in a variety of different situations. One type of benefits that a worker may receive include temporary total disability benefits. These benefits are available to help the injured worker during the period that they are healing from the injury they suffered. Benefits for temporary partial disability may also be available, as well as permanent total disability and permanent partial disability.
Benefits that are available generally include help with medical expenses and lost wages while the injured worker recovers from the workplace injury. Vocational rehabilitation benefits may also be available to help the injured worker return to work. Additionally, in circumstances of a fatal workplace accident, surviving family members may be able to receive death benefits to help them through the challenges they face following the loss of their loved one.
The process of applying for workers' compensation benefits can be complex. Employers or their insurance companies often reject claims, or provide less in the way of benefits than the worker deserves. If you have been injured on the job, speak to a lawyer who has experience with workers' compensation about your options. A lawyer can help at many points in the process, from filing initial claims to representing you at hearings and beyond.


text:
nav_ - Nations League set to expand with new knockout round from 2024/25 - News
Nations League set to expand with new knockout round from 2024/25
Quarter-finals and promotion/relegation play-offs will be introduced for the next edition of the competition.
The UEFA Nations League is set to expand from September 2024 AFP via Getty Images
Starting with the 2024/25 edition, the UEFA Nations League will be expanded with the addition of a new knockout round to be played in March, thereby creating a continuum between the group stage ending in November and the finals played in June.
League A group winners and runners-up will participate in home-and-away quarter-finals, with the winners of these ties qualifying for the Final Four.
The third-ranked teams from League A and the runners-up from League B, as well as the third-ranked teams from League B and the runners-up from League C, will play home-and-away promotion/relegation play-offs.
The expansion of the UEFA Nations League into the International Match Calendar window of March will only concern a selected number of teams and the remaining teams will already be available to start their European Qualifiers.
© 1998-2023 UEFA. All rights reserved. Last updated: Wednesday, 25 January 2023
UEFA Club Competitions store
UEFA Academy
Social and apps links
UEFA.org on Twitter
UEFA.org on Facebook
UEFA.org on Instagram
UEFA.org on LinkedIn
© 1998-2023 UEFA. All rights reserved

redpajama_set_name: RedPajamaCommonCrawl


The bottom line of the detailed GLMRIS report is delineation of 8 options to deal with this significant threat of biological contamination. Options ranging from the status quo all the way to spending $20B on separating the hydrological connections with physical barriers -- something environmental groups and several states say is the only viable option.
So we have to question: why did the USACE fail to make any recommendation? Do they really think that the status quo is a viable option? Their own recent investigation shows that schools of small carp swim through the USACE's electric barriers when barges are transiting through.
And why is the USACE only defining the area of impacts and risk assessment on the US side of the Great Lakes? Fish don't recognize the US Canada boundary. Who gave the USACE direction to only investigate US risk when Canada's Dept of Fisheries and Oceans provided detailed risk assessments for all 5 species that are currently in the Mississippi River? Our DFO assessed the risk as high not just for the Great Lakes but noted silver carp could invade all of the rivers and lakes up to James Bay and west to Alberta. Silver carp are so dense in the rivers downstream of the electric barriers that they jump up to 5 feet out of the water in large numbers and can hit passing boaters and hurt them. Just look for a posted video – there are many.
The Corps are holding 6 public meetings in the States during the month of January but none of these meeting are even close to locations Canadians could attend. But these are shared waters and we Canadians have a lot to lose if these fish get into the Great Lakes at Chicago – loss of fish habitat including wetlands and our native fishery. Recreational sport fishing alone in the Great Lakes is valued at $7-8 Billion annually.


The only difference in between typical fiber optic pc networks such as the World wide web and a fiber optic storage area network such as a SAN is how the devices talk to every other over the network. This example was made in ConceptDraw PRO working with the Pc and Networks Region of ConceptDraw Option Park.
It remains to be observed whether these developments are eventually a excellent thing for the storage guys, as the people who make each servers and storage may have a leg up in giving standardized options with one particular support point of view.
With a NAS or SAN architecture, exactly where storage is shared across the demands of a number of computer systems, one particular generally provisions a pool of shared spare storage that will serve the peak needs of the connected computer systems, which normally is significantly less than the total quantity of spare storage that would be necessary if individual storage devices were committed to every single computer system.


"We recently talked to Ryan John from theband Vú all about what it takes to carve out your own spot in the industry while navigating the beast that is social media.
For any and all up and coming Influencers and artists, you might want to take heed of what he had to say! Check out our exclusive interview with Ryan John down below..."


Why are bodysuits a must-have this season? There are too many reasons. Because high waists are in vogue, sleek bodysuits go perfectly with skirts, shorts and denim and save you the hassle of perfectly tucking in a shirt. Plus, some bodysuits can easily be taken into fall to heat up your cold-weather wardrobe. Whether you like a little peekaboo piece or a popping print, these bodysuits under $60 are as budget-friendly as they are beautiful.
Sleek, black with a high neckline that will show off those gorgeous shoulders, this piece from ASOS can be dressed up for evening with a pencil skirt or down with denim shorts for weekend shenanigans.
Add a party-rocking print to your everyday looks with this bold American Apparel bodysuit. Pair with a solid skirt or skinny jeans to let it do all the talking. Bonus: Those long sleeves can easily take you into fall with a vest or sleeveless trench!
Nothing is more flirty than a little lace and this gorgeous lace bodysuit from Guess is romantic with a fresh, fierce color. This piece will also be right at home in your fall wardrobe with a midi skirt and booties.
Another stunning find from ASOS, this halter bodysuit features a wrapped front with a little keyhole to show just a tiny bit of skin. Balance the look with a maxi skirt and sandals for a beach-ready outfit that will turn heads.
Perhaps one of the most coveted shapes of the season is the strappy neckline, making this simple yet on-trend plus size bodysuit from boohoo.com a major score. Pair with high-waisted flaired trousers for a polished, modern-meets-retro look.
Romantic yet edgy, this Nasty Gal mesh bodysuit features a floral accent that will cover you in all the right places. Go full ballerina with a tulle skirt and cute flats or simple with white skinny jeans and heels.


text:
Jeffry H. Larson, Ph.D., LMFT, CFLE, is a retired Professor of Marriage and Family Therapy at Brigham Young University.
He is the author of Should We Stay Together? A Scientifically Proven Method for Evaluating Your Relationship and Improving its Chances for Long Term Success (San Francisco: Jossey-Bass, 2000) and the E-book entitled The Great Marriage Tune-Up Book: A Proven Program for Evaluating and Renewing Your Relationship (March 2004), among others.

He obtained his B.S. and M.S. degrees in Psychology from BYU and a Ph.D. in Marriage and Family Therapy from Texas Tech University. He is a licensed marriage and family therapist, and   the former chair of the Utah State MFT Licensing Board. He is the former chairperson and professor of the Marriage and Family graduate program at BYU. He is the author of over 70 scholarly journal articles and book chapters. He was awarded the Distinguished Alumnus Award by Texas Tech University in 2001.

Prior to joining the BYU faculty Larson was on the faculty of Montana State University.

Personal life
Dr. Larson was born in 1949.

References

External links
A list of articles by Larson

Year of birth missing (living people)
Living people
Latter Day Saints from Montana
Brigham Young University alumni
Brigham Young University faculty
American psychotherapists
Texas Tech University alumni
Relationship education
Latter Day Saints from Texas
Latter Day Saints from Utah

redpajama_set_name: RedPajamaWikipedia


Heinz ketchup will no longer be used in McDonald's restaurants, Reuters reports.
The world's largest fast-food chain announced Oct. 25 that it would be switching brands after former chief executive of Burger King took over as CEO of H.J. Heinz Co.
The June appointment of Bernardo Hees followed the purchase of Heinz by Berkshire Hathaway and 3G Capital, a Brazilian investment firm, which also owns Burger King.
Hees still serves as vice chairman of Burger King's board and is a partner at 3G Capital.
"As a result of recent management changes at Heinz, we have decided to transition our business to other suppliers over time," McDonald's Canada said in a statement.
Heinz said it does not comment on the relationships with customers as a policy.


SANDY, Utah >> Alvaro Saborio and Kyle Beckerman scored to give Real Salt Lake a 2-0 victory over Chivas USA on Wednesday night in its last game of the regular season.
Salt Lake (15-8-11) moved into third place in the Western Conference — two points ahead of FC Dallas, which hosts Portland on Saturday.
Saborio scored on a penalty kick in the 36th minute after being pushed down during a free kick. In the second half, Beckerman took a pass from Joao Plata and slid a goal through the legs of goalkeeper Dan Kennedy in the 74th.
Salt Lake held an opponent scoreless for a third straight match and scored against Chivas for the first time this season after two 1-0 losses.
Chivas (8-19-6) is tied for last place with San Jose and will host the Earthquakes on Sunday.


Malcolm Allison will always be known to be one of English football's more flamboyant characters - he was aged 83 at the time of his passing.
Malcolm managed 11 clubs at home and abroad. He worked alongside Joe Mercer at Manchester City and notable achievements included winning the league title in 1968, The FA Cup in 1969 and the League Cup and European Cup Winners' Cup in 1970. He managed Crystal Palace on two separate occasions.
Allison is particularly known for his fedora hat and love of cigars. Known as "Big Mal" he spent most of his playing career at West Ham United.
He entered management with Bath City in 1963 and in the subsequent 30 years he took charge of Plymouth Argyle, Middlesbrough, Bristol Rovers, Toronto City, Galatasaray and Sporting Lisbon, amongst others. It was with Lisbon that he won the Portuguese championship and domestic cup.


LAKEWOOD RANCH -- The developer of this master-planned community will ask the Manatee County Commission on Thursday to approve several revisions to its first development order.
Schroeder-Manatee Ranch's initial development phase, originally called "Cypress Banks," spans 4,055 acres south of State Road 70 and is mostly built out.
SMR, however, wants to add 28 single-family houses and 179 homes in multifamily buildings; add nearly 66 acres of open space; and extend build-out deadlines by three years.
SMR will also ask to change zoning on nearly 28 acres northwest of S.R. 70 and Lorraine Road. It wants the property for a combination of retail, office and residential uses, instead of the current zoning of one home per acre.
MANATEE COUNTY -- Tuesday is Election Day for the Trailer Estates Park and Recreation District.
Property owners in Trailer Estates, a mobile home park at U.S. 41 and Florida Boulevard, will chose among eight candidates for the district's Board of Trustees.
The polls will be open from noon to 8 p.m. at the Trailer Estates Auditorium at Bay Drive and Canada Boulevard.
BRADENTON -- The city's Planning Commission will not meet in December.
The advisory board, which makes recommendations to the City Council about land use matters, will next meet on Jan. 21.
BRADENTON -- The 13th annual Winter Wonderland festival will include three days of events, a mountain of crushed ice for sledding and a visit from Santa and Mrs. Claus.
The Jingle Bell Run, a 5-kilometer run and 1-mile walk, kicks off the festival at 7 p.m. Dec. 11. The course is through downtown and along the riverfront. Register online at www.active.com.
At 6:30 p.m. Dec. 12, a lighted boat parade will be on the Manatee River.
On Dec. 13, from 5 to 9 p.m., Old Main Street will be the scene for sledding and other games, food, crafts, Santa and other entertainment.
MANATEE COUNTY -- The Boys & Girls Clubs of Manatee County will conduct a community meeting about gang prevention on Thursday.
The program will be from 9 a.m. to 5 p.m. at the Bradenton Boys & Girls Club, 1415 Ninth St. W. It will focus on efforts to identify children at risk of gang involvement and mentoring them before they get into trouble.
For details about the clubs, go to www.bgcofmanatee.org.
MANATEE COUNTY -- Leashed, inoculated, well-behaved dogs can join their owners for the 10th annual Canine Christmas Festival from 10 a.m. to 3 p.m. Saturday.
Admission is a donation of canned or bagged pet food, pet treats or pet toys.
The event at G.T. Bray Park, at Bradenton's 51st Street West and 34th Avenue, will feature contests, prizes, raffles and entertainment.
Local shelters will show animals available for adoption.
For more information, call 746-3611 or go to www.caninechristmas.com.


text:
This is my Joystick has closed. This site operates as an archive only.
Does the term 'Video-Game' need to be redefined?
October 20, 2014, Author: Jasper Pickering
video game definition
video game |ˈvɪdioʊˌɡeɪm|
a game played by electronically manipulating images produced by a computer program on a television screen or other display screen. - Oxford English Dictionary
Video-games have been hard to define in recent years, as genres spin off into hard-to-explain terms with increasing complexity and purpose. 'Electronically manipulating images' seems to be a good way to put any creative work with any sense of agency under this umbrella, but the term 'game' implies that the purpose of its creation is to be enjoyed. A 'form of play or sport' is a simpler way to define the word 'game', and this brings into question, "Is this video-game supposed to be either play or sport?"
There have been video-games made in recent years that do neither of these things. Games such as Dear Esther and Gone Home - commonly referred to as 'art games' – often have no ostensible objective or purpose. So why do we still refer to them as video-games? Surely, any media that provides any agency to the audience is worthy of this accolade, no matter how vague the definition can be?
An adventure of 'nothing in particular'.
Perhaps. This is the common argument; that art games are not – in the strictest definition – video-games, as they are 'not fun to play'. This debate is valid, to a point. The question that's asked is, 'am I enjoying this game?' when the question should be, 'am I meant to be enjoying this game?'
This has never been an issue for visual novels, which are still incredibly popular in Japan. Player choice is limited to occasionally selecting a route for the character to take, and the visual novel then guides the story based on this decision before the next choice has to be made. There is less interaction involved in this genre than any other that springs to mind, yet we still class them as video-games, even though they share more in common with books (or 'choose-your-own-adventure' stories more specifically).
Like other genres, visual novels can have good titles and god-awful titles. What can be classed as a 'good' visual novel is down to the player's (or reader's?) investment in the story and characters. Having an emotional tie with the material ensures that the player is engaged enough that they want to continue following the narrative, just like a traditional book.
"We're big in Japan" – Vague personification of visual novels
Video-games have the capacity to incite a vast array of strong emotions, and it's often the strongest invocations that leave the biggest impression. There is a reason why the horror genre is one of the most popular in film, because horror films have the ability to build tension and unleash it at any given moment. The sense of sheer terror is only exacerbated by the rise of unease, which helps to punctuate the film's set pieces. The same can be said for horror games, as the same techniques can be applied. Whether or not they are done well is a different question, however.
The 'best' works of art are often the most capable of creating an extreme emotional reaction. If a horror movie were not that scary, it would be considered a bad horror movie, or if a comedy weren't that funny, it would be considered a Rob Schneider film. This isn't the case for all content however, as there are plenty of great works that relish in their subtleties, including video-games of a certain pedigree that are often overlooked.
It's for this reason that art games can be dismissed as things that do not elicit any sense of 'fun' or 'sport', as few are often permeated with an obvious point of emotional reaction. The Stanley Parable for instance, highlights the monotony of its gameplay through its deadpan narrative, and restricted agency. This doesn't make it a bad game even in the slightest definition, but it does make it different. At first glance The Stanley Parable could be described as a first-person puzzle game, one not too dissimilar to Portal. It is, however, its own separate entity, with a blurry definition that struggles to come up with its own term. Yes, the game can be very funny, but could it be defined as a 'comedic game'? Perhaps not. After all, it can become very dark without a moments hesitation. It's a rather schizophrenic experience that changes throughout the player's progression.
The Stanley Parable is an experiment in social behaviour and interaction. It's an art game with one core concept that drives the rest of the experience; how should you respond to authority? It clearly takes much of its influence from the infamous Milgram Experiment back in the 60s, yet by using this one simple concept, a new experiential form of interaction has been created. I would argue that The Stanley Parable shares many similarities with visual novels; the narrative develops based on the choices that Stanley makes at fixed points of the story, leaving multiple endings that can be revisited on later playthroughs. Of course, The Stanley Parable isn't a visual novel –not by the standards of preconceived genres anyway.
Or did he…
As video-games as a medium further develop, new ideas and concepts are being executed that challenge presuppositions and biases that we ourselves assert. The standard tropes that define what a film or piece of literature can/should be cannot be applied to video-games in the same way, and they should be treated with this in mind. Video-games are still a relatively new platform for creativity, and the theories that may have applied to the definition of a video-game twenty years ago may not be applicable in today's creative landscape, as new ideas are constantly emerging.
There are design elements now that didn't exist ten years ago and now they are staples of the video-game format. When Halo introduced regenerative health into first person shooters, it became the norm. Now when a game doesn't have regenerative health it feels like an inspired design choice that refutes the 'cliché that has been in place for over a decade.
Video-games are changing constantly to their environment. As the technology develops, so to does the ability to experiment with new ideas and ways of interaction. Just because a game is not fun or sport, does not mean that it is not something of value. Creating new concepts, testing boundaries and challenging what's possible is part of the development process that has given birth to the genre-defining titles that we know and love today, and will be part of what makes the genre-defining games of the future.
Maybe it isn't the term 'video-game' that needs to be redefined, but our ideas of what video-games have the potential to be.
Tagged dear esther, game design, Gone Home, halo, play and sport, Portal, The Stanley Parable, visual novels
Help TIMJ by sharing this article
About Jasper Pickering
Author history »
Jasper is a twenty year old know-it-all whose dreams have yet to be crushed by the harsh realities of life. He spends his time playing video games, writing, reading, performing stand up, and refusing to get a real job.
Latest Articles by Jasper Pickering
Hands On: The Division (Beta)
can't find what you're looking for....
Top Editorials
More Editorials »
Story Modes aren't for fans of the sport
Diary of a Geek Dad: Artful Relationship
Sony's PS2 "Emulation" and why it makes me a hypocrite…
You know what? Wolfenstein 3D still holds up pretty damn well…
Battleborn: A Post-Overwatch Review
Top Features & News
More Features & News »
Team Talk!
Team Talk: A Fond Farewell to TIMJ Towers
Announcement: This Is My Joystick to close soon
Civilization 6 – 12 Minutes with Sean Bean
World of Final Fantasy – E3 Trailer Despite it Not Being E3 Yet
TIMJ Community
Ah. You've made it to the bottom of the page. Curious one we see. Looking for something more?
Subscribe to the TIMJ RSS Feed
© Copyright This Is My Joystick 2011. All Rights Reserved.
How we review games
You may be asking:
Got other questions?
Can we advertise with TIMJ?
Yes you can. Find out how »


David Letterman had a chat with the usually TV-camera shy Anna Wintour.
No shades (okay, so she walked in wearing them) and all smiles (!!), a demure Anna chatted with Dave.
That sound you hear? It's the phone ringing off the hook for that media coach.
Here's the video for your viewing pleasure.


text:
The 31st Conference of the
Society for Animation Studies
HOSTED BY UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS, LISBOA, PORTUGAL
Background drawing from Estória do Gato e da Lua / Tale About the Cat and the Moon (1995)
Promoted by Agência da Curta Metragem
18th June, 19h00
Convento de São Pedro de Alcântara
Celebrating 20 Years of Agência
In the last two decades, the production panorama of Portuguese animation films has increased considerably and changed its identity into a new creative and professional perspective. It never had been produced so many short films, with such great quality and diversity. Corollary to that is the vast number of awards, selections and the substantial attention that Portuguese authors have been receiving internationally. Agência - Portuguese Short Film Agency was created in 1999 by Curtas Metragens CRL (the same entity that organizes the Curtas Vila do Conde - International Film Festival) with the specific role of promoting and distributing Portuguese short films worldwide. And what better way to celebrate the 20th anniversary of our foundation than to approach the essential of Agencia's mission by exhibiting the incessant vitality of Portuguese animation cinema through some of its most emblematic films and directors.
Abi Feijó, Fado Lusitano (5:30)
Pedro Serrazina, Estória do Gato e da Lua (5:35)
Regina Pessoa, História Trágica com Final Feliz (7:46)
Joana Toste, Dama da Lapa (4:30)
Laura Gonçalves e Alexandra Ramires, Água Mole 9:15
José Miguel Ribeiro, Estilhaços, (17:45)
Paulo Patrício, Surpresa (8:40)
David Doutel e Vasco Sá, Agouro (15:00)
Alice Guimarães e Mónica Santos, Amélia & Duarte (8:30)
Duration: Aprox 83 mins


Black Gildan 64000 Softstyle shirt. Mens and Women's cut. Cheeto Orange Type. Design by The Next Wave, brilliant author unknown.
Shipping, $5 single, add $2.50 per shirt up to 5- buy 6 and shipping is free.
Orders of more than 50 shirts, please contact us for custom pricing and shipping.


Because I Just Can't Stop!
Hey Hey! A few posts ago I shared a card that I made for my lovely neighbor. Well, I just couldn't stop at a card. I saw a great box tutorial by fellow demonstrator Vicky Hayes that you can see here.
However, I did change up the dimensions on the lid. I wanted both the lid and the pretty box underneath to show. I made the box and put some wine tags in it because she makes her own wine and gives bottles as gifts.
I stamped my flowers (Flower Shop Set) in Calypso Coral and my go to for all things pretty, MELON MAMBO! 😉 The ribbon is the 1/4″ Cotton Ribbon on page 207 of the Stampin' Up! annual catalog.
The stamp on the tag is from the hostess set "Hello There". I love that stamp set!! By using the "For You" stamp on the tag she can give the bottles for any occasion and it will work.
I'm happy to say that she did love it and she sent me a picture of a tag on one of her bottles! What a fun gift!
Tagged 1/4" cotton ribbon, Bridgette Jones, Calypso Coral, FLower Shop, melon mambo, Stampin' Up!


text:
"""Test enums and other types"""

import unittest

from utils import PyrseasTestCase, fix_indent, new_std_map

CREATE_COMPOSITE_STMT = "CREATE TYPE t1 AS (x integer, y integer, z integer)"
CREATE_ENUM_STMT = "CREATE TYPE t1 AS ENUM ('red', 'green', 'blue')"
DROP_STMT = "DROP TYPE IF EXISTS t1"
COMMENT_STMT = "COMMENT ON TYPE t1 IS 'Test type t1'"

class CompositeToMapTestCase(PyrseasTestCase):
    """Test mapping of created composite types"""

    def test_composite(self):
        "Map a composite type"
        expmap = {'attributes': [{'x': 'integer'}, {'y': 'integer'},
                                 {'z': 'integer'}]}
        dbmap = self.db.execute_and_map(CREATE_COMPOSITE_STMT)
        self.assertEqual(dbmap['schema public']['type t1'], expmap)

class CompositeToSqlTestCase(PyrseasTestCase):
    """Test mapping of created composite types"""

    def test_create_composite(self):
        "Create a composite type"
        self.db.execute_commit(DROP_STMT)
        inmap = new_std_map()
        inmap['schema public'].update({'type t1': {
                    'attributes': [{'x': 'integer'}, {'y': 'integer'},
                                   {'z': 'integer'}]}})
        dbsql = self.db.process_map(inmap)
        self.assertEqual(fix_indent(dbsql[0]), CREATE_COMPOSITE_STMT)

    def test_drop_composite(self):
        "Drop an existing composite"
        self.db.execute(DROP_STMT)
        self.db.execute_commit(CREATE_COMPOSITE_STMT)
        inmap = new_std_map()
        dbsql = self.db.process_map(inmap)
        self.assertEqual(dbsql, ["DROP TYPE t1"])

    def test_rename_composite(self):
        "Rename an existing composite"
        self.db.execute(DROP_STMT)
        self.db.execute_commit(CREATE_COMPOSITE_STMT)
        inmap = new_std_map()
        inmap['schema public'].update({'type t2': {
                    'oldname': 't1',
                    'attributes': [{'x': 'integer'}, {'y': 'integer'},
                                   {'z': 'integer'}]}})
        dbsql = self.db.process_map(inmap)
        self.assertEqual(dbsql, ["ALTER TYPE t1 RENAME TO t2"])

class EnumToMapTestCase(PyrseasTestCase):
    """Test mapping of created enum types"""

    def test_enum(self):
        "Map an enum"
        self.db.execute_commit(DROP_STMT)
        expmap = {'labels': ['red', 'green', 'blue']}
        dbmap = self.db.execute_and_map(CREATE_ENUM_STMT)
        self.assertEqual(dbmap['schema public']['type t1'], expmap)

class EnumToSqlTestCase(PyrseasTestCase):
    """Test SQL generation from input enums"""

    def test_create_enum(self):
        "Create an enum"
        self.db.execute_commit(DROP_STMT)
        inmap = new_std_map()
        inmap['schema public'].update({'type t1': {
                    'labels': ['red', 'green', 'blue']}})
        dbsql = self.db.process_map(inmap)
        self.assertEqual(fix_indent(dbsql[0]), CREATE_ENUM_STMT)

    def test_drop_enum(self):
        "Drop an existing enum"
        self.db.execute(DROP_STMT)
        self.db.execute_commit(CREATE_ENUM_STMT)
        inmap = new_std_map()
        dbsql = self.db.process_map(inmap)
        self.assertEqual(dbsql, ["DROP TYPE t1"])

    def test_rename_enum(self):
        "Rename an existing enum"
        self.db.execute(DROP_STMT)
        self.db.execute_commit(CREATE_ENUM_STMT)
        inmap = new_std_map()
        inmap['schema public'].update({'type t2': {
                    'oldname': 't1', 'labels': ['red', 'green', 'blue']}})
        dbsql = self.db.process_map(inmap)
        self.assertEqual(dbsql, ["ALTER TYPE t1 RENAME TO t2"])

def suite():
    tests = unittest.TestLoader().loadTestsFromTestCase(CompositeToMapTestCase)
    tests.addTest(unittest.TestLoader().loadTestsFromTestCase(
            CompositeToSqlTestCase))
    tests.addTest(unittest.TestLoader().loadTestsFromTestCase(
            EnumToMapTestCase))
    tests.addTest(unittest.TestLoader().loadTestsFromTestCase(
            EnumToSqlTestCase))
    return tests

if __name__ == '__main__':
    unittest.main(defaultTest='suite')

redpajama_set_name: RedPajamaGithub


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

import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import com.fasterxml.jackson.annotation.JsonIgnore;

/**
 * @author Tijs Rademakers
 * @author Joram Barrez
 */
public class BpmnModel {

    protected Map<String, List<ExtensionAttribute>> definitionsAttributes = new LinkedHashMap<>();
    protected List<Process> processes = new ArrayList<>();
    protected Map<String, GraphicInfo> locationMap = new LinkedHashMap<>();
    protected Map<String, GraphicInfo> labelLocationMap = new LinkedHashMap<>();
    protected Map<String, List<GraphicInfo>> flowLocationMap = new LinkedHashMap<>();
    protected List<Signal> signals = new ArrayList<>();
    protected Map<String, MessageFlow> messageFlowMap = new LinkedHashMap<>();
    protected Map<String, Message> messageMap = new LinkedHashMap<>();
    protected Map<String, String> errorMap = new LinkedHashMap<>();
    protected Map<String, Escalation> escalationMap = new LinkedHashMap<>();
    protected Map<String, ItemDefinition> itemDefinitionMap = new LinkedHashMap<>();
    protected Map<String, DataStore> dataStoreMap = new LinkedHashMap<>();
    protected List<Pool> pools = new ArrayList<>();
    protected List<Import> imports = new ArrayList<>();
    protected List<Interface> interfaces = new ArrayList<>();
    protected List<Artifact> globalArtifacts = new ArrayList<>();
    protected List<Resource> resources = new ArrayList<>();
    protected Map<String, String> namespaceMap = new LinkedHashMap<>();
    protected String targetNamespace;
    protected String sourceSystemId;
    protected List<String> userTaskFormTypes;
    protected List<String> startEventFormTypes;
    protected int nextFlowIdCounter = 1;
    protected Object eventSupport;

    public Map<String, List<ExtensionAttribute>> getDefinitionsAttributes() {
        return definitionsAttributes;
    }

    public String getDefinitionsAttributeValue(String namespace, String name) {
        List<ExtensionAttribute> attributes = getDefinitionsAttributes().get(name);
        if (attributes != null && !attributes.isEmpty()) {
            for (ExtensionAttribute attribute : attributes) {
                if (namespace.equals(attribute.getNamespace()))
                    return attribute.getValue();
            }
        }
        return null;
    }

    public void addDefinitionsAttribute(ExtensionAttribute attribute) {
        if (attribute != null && StringUtils.isNotEmpty(attribute.getName())) {
            List<ExtensionAttribute> attributeList = null;
            if (!this.definitionsAttributes.containsKey(attribute.getName())) {
                attributeList = new ArrayList<>();
                this.definitionsAttributes.put(attribute.getName(), attributeList);
            }
            this.definitionsAttributes.get(attribute.getName()).add(attribute);
        }
    }

    public void setDefinitionsAttributes(Map<String, List<ExtensionAttribute>> attributes) {
        this.definitionsAttributes = attributes;
    }

    public Process getMainProcess() {
        if (!getPools().isEmpty()) {
            Process process = getProcess(getPools().get(0).getId());
            if (process != null) {
                return process;
            }
        }
        return getProcessWithoutPool();
    }

    private Process getProcessWithoutPool() {
        return getProcess(null);
    }

    public Process getProcess(String poolRef) {
        for (Process process : processes) {
            boolean foundPool = false;
            for (Pool pool : pools) {
                if (StringUtils.isNotEmpty(pool.getProcessRef()) && pool.getProcessRef().equalsIgnoreCase(process.getId())) {

                    if (poolRef != null) {
                        if (pool.getId().equalsIgnoreCase(poolRef)) {
                            foundPool = true;
                        }
                    } else {
                        foundPool = true;
                    }
                }
            }

            if (poolRef == null && !foundPool && process.isExecutable()) {
                return process;
            } else if (poolRef != null && foundPool) {
                return process;
            }
        }

        if (poolRef == null && !processes.isEmpty()) {
            return processes.get(0);
        }

        return null;
    }

    public Process getProcessById(String id) {
        for (Process process : processes) {
            if (process.getId().equals(id)) {
                return process;
            }
        }
        return null;
    }

    public List<Process> getProcesses() {
        return processes;
    }

    public void addProcess(Process process) {
        processes.add(process);
    }

    public Pool getPool(String id) {
        Pool foundPool = null;
        if (StringUtils.isNotEmpty(id)) {
            for (Pool pool : pools) {
                if (id.equals(pool.getId())) {
                    foundPool = pool;
                    break;
                }
            }
        }
        return foundPool;
    }

    public Lane getLane(String id) {
        Lane foundLane = null;
        if (StringUtils.isNotEmpty(id)) {
            for (Process process : processes) {
                for (Lane lane : process.getLanes()) {
                    if (id.equals(lane.getId())) {
                        foundLane = lane;
                        break;
                    }
                }
                if (foundLane != null) {
                    break;
                }
            }
        }
        return foundLane;
    }

    public FlowElement getFlowElement(String id) {
        FlowElement foundFlowElement = null;
        for (Process process : processes) {
            foundFlowElement = process.getFlowElement(id);
            if (foundFlowElement != null) {
                break;
            }
        }

        if (foundFlowElement == null) {
            for (Process process : processes) {
                for (FlowElement flowElement : process.findFlowElementsOfType(SubProcess.class)) {
                    foundFlowElement = getFlowElementInSubProcess(id, (SubProcess) flowElement);
                    if (foundFlowElement != null) {
                        break;
                    }
                }
                if (foundFlowElement != null) {
                    break;
                }
            }
        }

        return foundFlowElement;
    }

    protected FlowElement getFlowElementInSubProcess(String id, SubProcess subProcess) {
        FlowElement foundFlowElement = subProcess.getFlowElement(id);
        if (foundFlowElement == null) {
            for (FlowElement flowElement : subProcess.getFlowElements()) {
                if (flowElement instanceof SubProcess) {
                    foundFlowElement = getFlowElementInSubProcess(id, (SubProcess) flowElement);
                    if (foundFlowElement != null) {
                        break;
                    }
                }
            }
        }
        return foundFlowElement;
    }

    public Artifact getArtifact(String id) {
        Artifact foundArtifact = null;
        for (Process process : processes) {
            foundArtifact = process.getArtifact(id);
            if (foundArtifact != null) {
                break;
            }
        }

        if (foundArtifact == null) {
            for (Process process : processes) {
                for (FlowElement flowElement : process.findFlowElementsOfType(SubProcess.class)) {
                    foundArtifact = getArtifactInSubProcess(id, (SubProcess) flowElement);
                    if (foundArtifact != null) {
                        break;
                    }
                }
                if (foundArtifact != null) {
                    break;
                }
            }
        }

        return foundArtifact;
    }

    protected Artifact getArtifactInSubProcess(String id, SubProcess subProcess) {
        Artifact foundArtifact = subProcess.getArtifact(id);
        if (foundArtifact == null) {
            for (FlowElement flowElement : subProcess.getFlowElements()) {
                if (flowElement instanceof SubProcess) {
                    foundArtifact = getArtifactInSubProcess(id, (SubProcess) flowElement);
                    if (foundArtifact != null) {
                        break;
                    }
                }
            }
        }
        return foundArtifact;
    }

    public void addGraphicInfo(String key, GraphicInfo graphicInfo) {
        locationMap.put(key, graphicInfo);
    }

    public GraphicInfo getGraphicInfo(String key) {
        return locationMap.get(key);
    }

    public void removeGraphicInfo(String key) {
        locationMap.remove(key);
    }

    public List<GraphicInfo> getFlowLocationGraphicInfo(String key) {
        return flowLocationMap.get(key);
    }

    public void removeFlowGraphicInfoList(String key) {
        flowLocationMap.remove(key);
    }

    public Map<String, GraphicInfo> getLocationMap() {
        return locationMap;
    }

    public Map<String, List<GraphicInfo>> getFlowLocationMap() {
        return flowLocationMap;
    }

    public GraphicInfo getLabelGraphicInfo(String key) {
        return labelLocationMap.get(key);
    }

    public void addLabelGraphicInfo(String key, GraphicInfo graphicInfo) {
        labelLocationMap.put(key, graphicInfo);
    }

    public void removeLabelGraphicInfo(String key) {
        labelLocationMap.remove(key);
    }

    public Map<String, GraphicInfo> getLabelLocationMap() {
        return labelLocationMap;
    }

    public void addFlowGraphicInfoList(String key, List<GraphicInfo> graphicInfoList) {
        flowLocationMap.put(key, graphicInfoList);
    }

    public Collection<Resource> getResources() {
        return resources;
    }

    public void setResources(Collection<Resource> resourceList) {
        if (resourceList != null) {
            resources.clear();
            resources.addAll(resourceList);
        }
    }

    public void addResource(Resource resource) {
        if (resource != null) {
            resources.add(resource);
        }
    }

    public boolean containsResourceId(String resourceId) {
        return getResource(resourceId) != null;
    }

    public Resource getResource(String id) {
        for (Resource resource : resources) {
            if (id.equals(resource.getId())) {
                return resource;
            }
        }
        return null;
    }

    public Collection<Signal> getSignals() {
        return signals;
    }

    public void setSignals(Collection<Signal> signalList) {
        if (signalList != null) {
            signals.clear();
            signals.addAll(signalList);
        }
    }

    public void addSignal(Signal signal) {
        if (signal != null) {
            signals.add(signal);
        }
    }

    public boolean containsSignalId(String signalId) {
        return getSignal(signalId) != null;
    }

    public Signal getSignal(String id) {
        Signal foundSignal = null;
        if (StringUtils.isNotEmpty(id)) {
            for (Signal signal : signals) {
                if (id.equals(signal.getId())) {
                    foundSignal = signal;
                    break;
                }
            }
        }
        return foundSignal;
    }

    public Map<String, MessageFlow> getMessageFlows() {
        return messageFlowMap;
    }

    public void setMessageFlows(Map<String, MessageFlow> messageFlows) {
        this.messageFlowMap = messageFlows;
    }

    public void addMessageFlow(MessageFlow messageFlow) {
        if (messageFlow != null && StringUtils.isNotEmpty(messageFlow.getId())) {
            messageFlowMap.put(messageFlow.getId(), messageFlow);
        }
    }

    public MessageFlow getMessageFlow(String id) {
        return messageFlowMap.get(id);
    }

    public boolean containsMessageFlowId(String messageFlowId) {
        return messageFlowMap.containsKey(messageFlowId);
    }

    public Collection<Message> getMessages() {
        return messageMap.values();
    }

    public void setMessages(Collection<Message> messageList) {
        if (messageList != null) {
            messageMap.clear();
            for (Message message : messageList) {
                addMessage(message);
            }
        }
    }

    public void addMessage(Message message) {
        if (message != null && StringUtils.isNotEmpty(message.getId())) {
            messageMap.put(message.getId(), message);
        }
    }

    public Message getMessage(String id) {
        Message result = messageMap.get(id);
        if (result == null) {
            int indexOfNS = id.indexOf(':');
            if (indexOfNS > 0) {
                String idNamespace = id.substring(0, indexOfNS);
                if (idNamespace.equalsIgnoreCase(this.getTargetNamespace())) {
                    id = id.substring(indexOfNS + 1);
                }
                result = messageMap.get(id);
            }
        }
        return result;
    }

    public boolean containsMessageId(String messageId) {
        return messageMap.containsKey(messageId);
    }

    public Map<String, String> getErrors() {
        return errorMap;
    }

    public void setErrors(Map<String, String> errorMap) {
        this.errorMap = errorMap;
    }

    public void addError(String errorRef, String errorCode) {
        if (StringUtils.isNotEmpty(errorRef)) {
            errorMap.put(errorRef, errorCode);
        }
    }

    public boolean containsErrorRef(String errorRef) {
        return errorMap.containsKey(errorRef);
    }

    public Collection<Escalation> getEscalations() {
        return escalationMap.values();
    }

    public void setEscalations(Map<String, Escalation> escalationMap) {
        this.escalationMap = escalationMap;
    }

    public void addEscalation(String escalationRef, String escalationCode, String name) {
        if (StringUtils.isNotEmpty(escalationRef)) {
            escalationMap.put(escalationRef, new Escalation(escalationRef, name, escalationCode));
        }
    }

    public void addEscalation(Escalation escalation) {
        if (StringUtils.isNotEmpty(escalation.getEscalationCode())) {
            escalationMap.put(escalation.getEscalationCode(), escalation);
        }
    }

    public boolean containsEscalationRef(String escalationRef) {
        return escalationMap.containsKey(escalationRef);
    }

    public Escalation getEscalation(String escalationRef) {
        return escalationMap.get(escalationRef);
    }

    public Map<String, ItemDefinition> getItemDefinitions() {
        return itemDefinitionMap;
    }

    public void setItemDefinitions(Map<String, ItemDefinition> itemDefinitionMap) {
        this.itemDefinitionMap = itemDefinitionMap;
    }

    public void addItemDefinition(String id, ItemDefinition item) {
        if (StringUtils.isNotEmpty(id)) {
            itemDefinitionMap.put(id, item);
        }
    }

    public boolean containsItemDefinitionId(String id) {
        return itemDefinitionMap.containsKey(id);
    }

    public Map<String, DataStore> getDataStores() {
        return dataStoreMap;
    }

    public void setDataStores(Map<String, DataStore> dataStoreMap) {
        this.dataStoreMap = dataStoreMap;
    }

    public DataStore getDataStore(String id) {
        DataStore dataStore = null;
        if (dataStoreMap.containsKey(id)) {
            dataStore = dataStoreMap.get(id);
        }
        return dataStore;
    }

    public void addDataStore(String id, DataStore dataStore) {
        if (StringUtils.isNotEmpty(id)) {
            dataStoreMap.put(id, dataStore);
        }
    }

    public boolean containsDataStore(String id) {
        return dataStoreMap.containsKey(id);
    }

    public List<Pool> getPools() {
        return pools;
    }

    public void setPools(List<Pool> pools) {
        this.pools = pools;
    }

    public List<Import> getImports() {
        return imports;
    }

    public void setImports(List<Import> imports) {
        this.imports = imports;
    }

    public List<Interface> getInterfaces() {
        return interfaces;
    }

    public void setInterfaces(List<Interface> interfaces) {
        this.interfaces = interfaces;
    }

    public List<Artifact> getGlobalArtifacts() {
        return globalArtifacts;
    }

    public void setGlobalArtifacts(List<Artifact> globalArtifacts) {
        this.globalArtifacts = globalArtifacts;
    }

    public void addNamespace(String prefix, String uri) {
        namespaceMap.put(prefix, uri);
    }

    public boolean containsNamespacePrefix(String prefix) {
        return namespaceMap.containsKey(prefix);
    }

    public String getNamespace(String prefix) {
        return namespaceMap.get(prefix);
    }

    public Map<String, String> getNamespaces() {
        return namespaceMap;
    }

    public String getTargetNamespace() {
        return targetNamespace;
    }

    public void setTargetNamespace(String targetNamespace) {
        this.targetNamespace = targetNamespace;
    }

    public String getSourceSystemId() {
        return sourceSystemId;
    }

    public void setSourceSystemId(String sourceSystemId) {
        this.sourceSystemId = sourceSystemId;
    }

    public List<String> getUserTaskFormTypes() {
        return userTaskFormTypes;
    }

    public void setUserTaskFormTypes(List<String> userTaskFormTypes) {
        this.userTaskFormTypes = userTaskFormTypes;
    }

    public List<String> getStartEventFormTypes() {
        return startEventFormTypes;
    }

    public void setStartEventFormTypes(List<String> startEventFormTypes) {
        this.startEventFormTypes = startEventFormTypes;
    }

    @JsonIgnore
    public Object getEventSupport() {
        return eventSupport;
    }

    public void setEventSupport(Object eventSupport) {
        this.eventSupport = eventSupport;
    }
}


text:
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/dmaengine.h>
#include <linux/omap-dmaengine.h>
#include <linux/slab.h>
#include <linux/uaccess.h>

#include "isp.h"
#include "ispreg.h"
#include "isphist.h"

#define HIST_CONFIG_DMA	1

/*
 * hist_reset_mem - clear Histogram memory before start stats engine.
 */
static void hist_reset_mem(struct ispstat *hist)
{
	struct isp_device *isp = hist->isp;
	struct omap3isp_hist_config *conf = hist->priv;
	unsigned int i;

	isp_reg_writel(isp, 0, OMAP3_ISP_IOMEM_HIST, ISPHIST_ADDR);

	/*
	 * By setting it, the histogram internal buffer is being cleared at the
	 * same time it's being read. This bit must be cleared afterwards.
	 */
	isp_reg_set(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_CNT, ISPHIST_CNT_CLEAR);

	/*
	 * We'll clear 4 words at each iteration for optimization. It avoids
	 * 3/4 of the jumps. We also know HIST_MEM_SIZE is divisible by 4.
	 */
	for (i = OMAP3ISP_HIST_MEM_SIZE / 4; i > 0; i--) {
		isp_reg_readl(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_DATA);
		isp_reg_readl(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_DATA);
		isp_reg_readl(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_DATA);
		isp_reg_readl(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_DATA);
	}
	isp_reg_clr(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_CNT, ISPHIST_CNT_CLEAR);

	hist->wait_acc_frames = conf->num_acc_frames;
}

/*
 * hist_setup_regs - Helper function to update Histogram registers.
 */
static void hist_setup_regs(struct ispstat *hist, void *priv)
{
	struct isp_device *isp = hist->isp;
	struct omap3isp_hist_config *conf = priv;
	int c;
	u32 cnt;
	u32 wb_gain;
	u32 reg_hor[OMAP3ISP_HIST_MAX_REGIONS];
	u32 reg_ver[OMAP3ISP_HIST_MAX_REGIONS];

	if (!hist->update || hist->state == ISPSTAT_DISABLED ||
	    hist->state == ISPSTAT_DISABLING)
		return;

	cnt = conf->cfa << ISPHIST_CNT_CFA_SHIFT;

	wb_gain = conf->wg[0] << ISPHIST_WB_GAIN_WG00_SHIFT;
	wb_gain |= conf->wg[1] << ISPHIST_WB_GAIN_WG01_SHIFT;
	wb_gain |= conf->wg[2] << ISPHIST_WB_GAIN_WG02_SHIFT;
	if (conf->cfa == OMAP3ISP_HIST_CFA_BAYER)
		wb_gain |= conf->wg[3] << ISPHIST_WB_GAIN_WG03_SHIFT;

	/* Regions size and position */
	for (c = 0; c < OMAP3ISP_HIST_MAX_REGIONS; c++) {
		if (c < conf->num_regions) {
			reg_hor[c] = (conf->region[c].h_start <<
				     ISPHIST_REG_START_SHIFT)
				   | (conf->region[c].h_end <<
				     ISPHIST_REG_END_SHIFT);
			reg_ver[c] = (conf->region[c].v_start <<
				     ISPHIST_REG_START_SHIFT)
				   | (conf->region[c].v_end <<
				     ISPHIST_REG_END_SHIFT);
		} else {
			reg_hor[c] = 0;
			reg_ver[c] = 0;
		}
	}

	cnt |= conf->hist_bins << ISPHIST_CNT_BINS_SHIFT;
	switch (conf->hist_bins) {
	case OMAP3ISP_HIST_BINS_256:
		cnt |= (ISPHIST_IN_BIT_WIDTH_CCDC - 8) <<
			ISPHIST_CNT_SHIFT_SHIFT;
		break;
	case OMAP3ISP_HIST_BINS_128:
		cnt |= (ISPHIST_IN_BIT_WIDTH_CCDC - 7) <<
			ISPHIST_CNT_SHIFT_SHIFT;
		break;
	case OMAP3ISP_HIST_BINS_64:
		cnt |= (ISPHIST_IN_BIT_WIDTH_CCDC - 6) <<
			ISPHIST_CNT_SHIFT_SHIFT;
		break;
	default: /* OMAP3ISP_HIST_BINS_32 */
		cnt |= (ISPHIST_IN_BIT_WIDTH_CCDC - 5) <<
			ISPHIST_CNT_SHIFT_SHIFT;
		break;
	}

	hist_reset_mem(hist);

	isp_reg_writel(isp, cnt, OMAP3_ISP_IOMEM_HIST, ISPHIST_CNT);
	isp_reg_writel(isp, wb_gain,  OMAP3_ISP_IOMEM_HIST, ISPHIST_WB_GAIN);
	isp_reg_writel(isp, reg_hor[0], OMAP3_ISP_IOMEM_HIST, ISPHIST_R0_HORZ);
	isp_reg_writel(isp, reg_ver[0], OMAP3_ISP_IOMEM_HIST, ISPHIST_R0_VERT);
	isp_reg_writel(isp, reg_hor[1], OMAP3_ISP_IOMEM_HIST, ISPHIST_R1_HORZ);
	isp_reg_writel(isp, reg_ver[1], OMAP3_ISP_IOMEM_HIST, ISPHIST_R1_VERT);
	isp_reg_writel(isp, reg_hor[2], OMAP3_ISP_IOMEM_HIST, ISPHIST_R2_HORZ);
	isp_reg_writel(isp, reg_ver[2], OMAP3_ISP_IOMEM_HIST, ISPHIST_R2_VERT);
	isp_reg_writel(isp, reg_hor[3], OMAP3_ISP_IOMEM_HIST, ISPHIST_R3_HORZ);
	isp_reg_writel(isp, reg_ver[3], OMAP3_ISP_IOMEM_HIST, ISPHIST_R3_VERT);

	hist->update = 0;
	hist->config_counter += hist->inc_config;
	hist->inc_config = 0;
	hist->buf_size = conf->buf_size;
}

static void hist_enable(struct ispstat *hist, int enable)
{
	if (enable) {
		isp_reg_set(hist->isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_PCR,
			    ISPHIST_PCR_ENABLE);
		omap3isp_subclk_enable(hist->isp, OMAP3_ISP_SUBCLK_HIST);
	} else {
		isp_reg_clr(hist->isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_PCR,
			    ISPHIST_PCR_ENABLE);
		omap3isp_subclk_disable(hist->isp, OMAP3_ISP_SUBCLK_HIST);
	}
}

static int hist_busy(struct ispstat *hist)
{
	return isp_reg_readl(hist->isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_PCR)
						& ISPHIST_PCR_BUSY;
}

static void hist_dma_cb(void *data)
{
	struct ispstat *hist = data;

	/* FIXME: The DMA engine API can't report transfer errors :-/ */

	isp_reg_clr(hist->isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_CNT,
		    ISPHIST_CNT_CLEAR);

	omap3isp_stat_dma_isr(hist);
	if (hist->state != ISPSTAT_DISABLED)
		omap3isp_hist_dma_done(hist->isp);
}

static int hist_buf_dma(struct ispstat *hist)
{
	dma_addr_t dma_addr = hist->active_buf->dma_addr;
	struct dma_async_tx_descriptor *tx;
	struct dma_slave_config cfg;
	dma_cookie_t cookie;
	int ret;

	if (unlikely(!dma_addr)) {
		dev_dbg(hist->isp->dev, "hist: invalid DMA buffer address\n");
		goto error;
	}

	isp_reg_writel(hist->isp, 0, OMAP3_ISP_IOMEM_HIST, ISPHIST_ADDR);
	isp_reg_set(hist->isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_CNT,
		    ISPHIST_CNT_CLEAR);
	omap3isp_flush(hist->isp);

	memset(&cfg, 0, sizeof(cfg));
	cfg.src_addr = hist->isp->mmio_hist_base_phys + ISPHIST_DATA;
	cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
	cfg.src_maxburst = hist->buf_size / 4;

	ret = dmaengine_slave_config(hist->dma_ch, &cfg);
	if (ret < 0) {
		dev_dbg(hist->isp->dev,
			"hist: DMA slave configuration failed\n");
		goto error;
	}

	tx = dmaengine_prep_slave_single(hist->dma_ch, dma_addr,
					 hist->buf_size, DMA_DEV_TO_MEM,
					 DMA_CTRL_ACK);
	if (tx == NULL) {
		dev_dbg(hist->isp->dev,
			"hist: DMA slave preparation failed\n");
		goto error;
	}

	tx->callback = hist_dma_cb;
	tx->callback_param = hist;
	cookie = tx->tx_submit(tx);
	if (dma_submit_error(cookie)) {
		dev_dbg(hist->isp->dev, "hist: DMA submission failed\n");
		goto error;
	}

	dma_async_issue_pending(hist->dma_ch);

	return STAT_BUF_WAITING_DMA;

error:
	hist_reset_mem(hist);
	return STAT_NO_BUF;
}

static int hist_buf_pio(struct ispstat *hist)
{
	struct isp_device *isp = hist->isp;
	u32 *buf = hist->active_buf->virt_addr;
	unsigned int i;

	if (!buf) {
		dev_dbg(isp->dev, "hist: invalid PIO buffer address\n");
		hist_reset_mem(hist);
		return STAT_NO_BUF;
	}

	isp_reg_writel(isp, 0, OMAP3_ISP_IOMEM_HIST, ISPHIST_ADDR);

	/*
	 * By setting it, the histogram internal buffer is being cleared at the
	 * same time it's being read. This bit must be cleared just after all
	 * data is acquired.
	 */
	isp_reg_set(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_CNT, ISPHIST_CNT_CLEAR);

	/*
	 * We'll read 4 times a 4-bytes-word at each iteration for
	 * optimization. It avoids 3/4 of the jumps. We also know buf_size is
	 * divisible by 16.
	 */
	for (i = hist->buf_size / 16; i > 0; i--) {
		*buf++ = isp_reg_readl(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_DATA);
		*buf++ = isp_reg_readl(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_DATA);
		*buf++ = isp_reg_readl(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_DATA);
		*buf++ = isp_reg_readl(isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_DATA);
	}
	isp_reg_clr(hist->isp, OMAP3_ISP_IOMEM_HIST, ISPHIST_CNT,
		    ISPHIST_CNT_CLEAR);

	return STAT_BUF_DONE;
}

/*
 * hist_buf_process - Callback from ISP driver for HIST interrupt.
 */
static int hist_buf_process(struct ispstat *hist)
{
	struct omap3isp_hist_config *user_cfg = hist->priv;
	int ret;

	if (atomic_read(&hist->buf_err) || hist->state != ISPSTAT_ENABLED) {
		hist_reset_mem(hist);
		return STAT_NO_BUF;
	}

	if (--(hist->wait_acc_frames))
		return STAT_NO_BUF;

	if (hist->dma_ch)
		ret = hist_buf_dma(hist);
	else
		ret = hist_buf_pio(hist);

	hist->wait_acc_frames = user_cfg->num_acc_frames;

	return ret;
}

static u32 hist_get_buf_size(struct omap3isp_hist_config *conf)
{
	return OMAP3ISP_HIST_MEM_SIZE_BINS(conf->hist_bins) * conf->num_regions;
}

/*
 * hist_validate_params - Helper function to check user given params.
 * @new_conf: Pointer to user configuration structure.
 *
 * Returns 0 on success configuration.
 */
static int hist_validate_params(struct ispstat *hist, void *new_conf)
{
	struct omap3isp_hist_config *user_cfg = new_conf;
	int c;
	u32 buf_size;

	if (user_cfg->cfa > OMAP3ISP_HIST_CFA_FOVEONX3)
		return -EINVAL;

	/* Regions size and position */

	if ((user_cfg->num_regions < OMAP3ISP_HIST_MIN_REGIONS) ||
	    (user_cfg->num_regions > OMAP3ISP_HIST_MAX_REGIONS))
		return -EINVAL;

	/* Regions */
	for (c = 0; c < user_cfg->num_regions; c++) {
		if (user_cfg->region[c].h_start & ~ISPHIST_REG_START_END_MASK)
			return -EINVAL;
		if (user_cfg->region[c].h_end & ~ISPHIST_REG_START_END_MASK)
			return -EINVAL;
		if (user_cfg->region[c].v_start & ~ISPHIST_REG_START_END_MASK)
			return -EINVAL;
		if (user_cfg->region[c].v_end & ~ISPHIST_REG_START_END_MASK)
			return -EINVAL;
		if (user_cfg->region[c].h_start > user_cfg->region[c].h_end)
			return -EINVAL;
		if (user_cfg->region[c].v_start > user_cfg->region[c].v_end)
			return -EINVAL;
	}

	switch (user_cfg->num_regions) {
	case 1:
		if (user_cfg->hist_bins > OMAP3ISP_HIST_BINS_256)
			return -EINVAL;
		break;
	case 2:
		if (user_cfg->hist_bins > OMAP3ISP_HIST_BINS_128)
			return -EINVAL;
		break;
	default: /* 3 or 4 */
		if (user_cfg->hist_bins > OMAP3ISP_HIST_BINS_64)
			return -EINVAL;
		break;
	}

	buf_size = hist_get_buf_size(user_cfg);
	if (buf_size > user_cfg->buf_size)
		/* User's buf_size request wasn't enough */
		user_cfg->buf_size = buf_size;
	else if (user_cfg->buf_size > OMAP3ISP_HIST_MAX_BUF_SIZE)
		user_cfg->buf_size = OMAP3ISP_HIST_MAX_BUF_SIZE;

	return 0;
}

static int hist_comp_params(struct ispstat *hist,
			    struct omap3isp_hist_config *user_cfg)
{
	struct omap3isp_hist_config *cur_cfg = hist->priv;
	int c;

	if (cur_cfg->cfa != user_cfg->cfa)
		return 1;

	if (cur_cfg->num_acc_frames != user_cfg->num_acc_frames)
		return 1;

	if (cur_cfg->hist_bins != user_cfg->hist_bins)
		return 1;

	for (c = 0; c < OMAP3ISP_HIST_MAX_WG; c++) {
		if (c == 3 && user_cfg->cfa == OMAP3ISP_HIST_CFA_FOVEONX3)
			break;
		else if (cur_cfg->wg[c] != user_cfg->wg[c])
			return 1;
	}

	if (cur_cfg->num_regions != user_cfg->num_regions)
		return 1;

	/* Regions */
	for (c = 0; c < user_cfg->num_regions; c++) {
		if (cur_cfg->region[c].h_start != user_cfg->region[c].h_start)
			return 1;
		if (cur_cfg->region[c].h_end != user_cfg->region[c].h_end)
			return 1;
		if (cur_cfg->region[c].v_start != user_cfg->region[c].v_start)
			return 1;
		if (cur_cfg->region[c].v_end != user_cfg->region[c].v_end)
			return 1;
	}

	return 0;
}

/*
 * hist_update_params - Helper function to check and store user given params.
 * @new_conf: Pointer to user configuration structure.
 */
static void hist_set_params(struct ispstat *hist, void *new_conf)
{
	struct omap3isp_hist_config *user_cfg = new_conf;
	struct omap3isp_hist_config *cur_cfg = hist->priv;

	if (!hist->configured || hist_comp_params(hist, user_cfg)) {
		memcpy(cur_cfg, user_cfg, sizeof(*user_cfg));
		if (user_cfg->num_acc_frames == 0)
			user_cfg->num_acc_frames = 1;
		hist->inc_config++;
		hist->update = 1;
		/*
		 * User might be asked for a bigger buffer than necessary for
		 * this configuration. In order to return the right amount of
		 * data during buffer request, let's calculate the size here
		 * instead of stick with user_cfg->buf_size.
		 */
		cur_cfg->buf_size = hist_get_buf_size(cur_cfg);

	}
}

static long hist_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
{
	struct ispstat *stat = v4l2_get_subdevdata(sd);

	switch (cmd) {
	case VIDIOC_OMAP3ISP_HIST_CFG:
		return omap3isp_stat_config(stat, arg);
	case VIDIOC_OMAP3ISP_STAT_REQ:
		return omap3isp_stat_request_statistics(stat, arg);
	case VIDIOC_OMAP3ISP_STAT_EN: {
		int *en = arg;
		return omap3isp_stat_enable(stat, !!*en);
	}
	}

	return -ENOIOCTLCMD;

}

static const struct ispstat_ops hist_ops = {
	.validate_params	= hist_validate_params,
	.set_params		= hist_set_params,
	.setup_regs		= hist_setup_regs,
	.enable			= hist_enable,
	.busy			= hist_busy,
	.buf_process		= hist_buf_process,
};

static const struct v4l2_subdev_core_ops hist_subdev_core_ops = {
	.ioctl = hist_ioctl,
	.subscribe_event = omap3isp_stat_subscribe_event,
	.unsubscribe_event = omap3isp_stat_unsubscribe_event,
};

static const struct v4l2_subdev_video_ops hist_subdev_video_ops = {
	.s_stream = omap3isp_stat_s_stream,
};

static const struct v4l2_subdev_ops hist_subdev_ops = {
	.core = &hist_subdev_core_ops,
	.video = &hist_subdev_video_ops,
};

/*
 * omap3isp_hist_init - Module Initialization.
 */
int omap3isp_hist_init(struct isp_device *isp)
{
	struct ispstat *hist = &isp->isp_hist;
	struct omap3isp_hist_config *hist_cfg;
	int ret = -1;

	hist_cfg = devm_kzalloc(isp->dev, sizeof(*hist_cfg), GFP_KERNEL);
	if (hist_cfg == NULL)
		return -ENOMEM;

	hist->isp = isp;

	if (HIST_CONFIG_DMA) {
		struct platform_device *pdev = to_platform_device(isp->dev);
		struct resource *res;
		unsigned int sig = 0;
		dma_cap_mask_t mask;

		dma_cap_zero(mask);
		dma_cap_set(DMA_SLAVE, mask);

		res = platform_get_resource_byname(pdev, IORESOURCE_DMA,
						   "hist");
		if (res)
			sig = res->start;

		hist->dma_ch = dma_request_slave_channel_compat(mask,
				omap_dma_filter_fn, &sig, isp->dev, "hist");
		if (!hist->dma_ch)
			dev_warn(isp->dev,
				 "hist: DMA channel request failed, using PIO\n");
		else
			dev_dbg(isp->dev, "hist: using DMA channel %s\n",
				dma_chan_name(hist->dma_ch));
	}

	hist->ops = &hist_ops;
	hist->priv = hist_cfg;
	hist->event_type = V4L2_EVENT_OMAP3ISP_HIST;

	ret = omap3isp_stat_init(hist, "histogram", &hist_subdev_ops);
	if (ret) {
		if (hist->dma_ch)
			dma_release_channel(hist->dma_ch);
	}

	return ret;
}

/*
 * omap3isp_hist_cleanup - Module cleanup.
 */
void omap3isp_hist_cleanup(struct isp_device *isp)
{
	struct ispstat *hist = &isp->isp_hist;

	if (hist->dma_ch)
		dma_release_channel(hist->dma_ch);

	omap3isp_stat_cleanup(hist);
}


Smith says it was his best tour yet!
Country stars love their furry friends!
"We were kind of blessed with getting to climb Mt. Everest," Kix Brooks reflects, "and we're not naive enough to think that we're probably gonna climb Mt. Everest again."
Can we call it a mini-reunion?
Who's going to win at the 2019 ACM Awards?
Dang, how times have changed!
The song is called "Love Me Anyway."
Get access to exclusive giveaways, the best music news, local alerts, weather coverage and traffic updates in the Rochester area with the new Quick Country 96.5 app!


Make your driving experience truly unique and personalise your vehicle to suit your own personality.
Volvo offer a huge range of genuine accessories, all designed specifically to integrate with your Volvo simply chose what you want to make your car stand out from the crowd!
Know someone mad about Volvo and Cars? We would like to introduce you to the Volvo Cars Global Collection of gifts and clothing.
These unique items have been created for you in close collaboration with the Volvo design team and leading designers around the world.
Either go online and take a look through the extensive catalogue, or get in touch with one our team who have a high knowledge of Volvo accessories and can advise you on your available options and how to order.


The second edition of Our Voices is a ground-breaking collection of writings from Aboriginal social work educators who have collaborated to develop a toolkit of appropriate behaviours, interactions, networks, and intervention. The the text explores a range of current and emerging social work practice issues such as cultural supervision, working with communities, understanding trauma, collaboration and relationship building, and the ubiquity of whiteness in Australian social work. It covers these issues with new and innovative approaches and provides valuable insights into how social work practice can be developed, taught and practiced in ways that more effectively engage Indigenous communities.


text:
package org.apache.nifi.web.api.entity;

import javax.xml.bind.annotation.XmlRootElement;
import java.util.Set;

/**
 * A serialized representation of this class can be placed in the entity body of a request or response to or from the API. This particular entity holds a reference to a set of ProcessGroupEntitys.
 */
@XmlRootElement(name = "processGroupsEntity")
public class ProcessGroupsEntity extends Entity {

    private Set<ProcessGroupEntity> processGroups;

    /**
     * The ProcessGroupEntity that is being serialized.
     *
     * @return The ProcessGroupEntitys
     */
    public Set<ProcessGroupEntity> getProcessGroups() {
        return processGroups;
    }

    public void setProcessGroups(Set<ProcessGroupEntity> processGroups) {
        this.processGroups = processGroups;
    }

}


This one goes out to my cohost Tristan who delivered the punchline on a Facebook thread about the last comic. I can never tell which comics are going to get a lot of shares, and that last on definitely did – going out to 2500 people in a few days thanks to you guys.
Also, for those of you who joined the 'Brain Trust' through the Kickstarter, or by making a donation to the site that says "let me in the Brain Trust!" – we will be having some exclusive google hangouts starting tomorrow. I'll send out a link to the secret schedule, but be on the lookout for invites.
That's right, Mitch is back on the market.
The great hunter returns, again.
Didn't he get dumped over organic steak?
If he killed it himself, it's Paleo, right?
Only if he used a hand-thrown spear!
Was Craig always in a sweater-vest? *peeks back issues* Ew.
Thought of you today. Reading the New Yorker this afternoon because my wife just got gifted a subscription. Article on Manny Pacquiao and Chris Algieri having a fight in November but apparently they're too nice to each other. Pacquiao's trainer relates a story where he asks Algieri about what kind of doctor he apparently wants to be. Algieri says naturopath. Trainer says that's not a real doctor. I'm silently cheering in my head until the next line where the New Yorker needs to clarify it's not a naturopathic doctor he wants to be, but an osteopath. I'm thinking the trainer's point is still just as valid! I'm glad I don't take medical advice from professional boxers. It could have been worse. I listened to an interview with Oscar de la Hoya a couple years ago in which he was extolling celibacy and drinking your own urine to train for a match.
Now for a late dinner. Pretty sure my ancestors would eat this refrigerator-cold, left-over pizza. Therefore paleo.
Is it also paleo if you kill it with a hand-thrown pot? And could you please tell me where to get a brain truss, I think mine has developed a hernia.


There's no practical application for me to have a knife like that.
Aroma - Roasted malts and subtle coffee notes come through strong with subtle chocolate bringing up the rear. Small amounts of earthy hops are present as well.
Appearance - This is a crystal clear bronze color with an off-white head that starts fluffy and ends up topping the beer leaving nice lacing.
Flavor - I will try to mention all I'm getting here: wheat bread, bread crust, roasted malts, toasted malts, subtle caramel, subtle coffee. There's so much going on but it all works so well together.
Mouthfeel - Light-medium body with medium carbonation. Not quite creamy but almost there.
Overall Impression - Don't be fooled by the color, this beer is refreshing and crazy drinkable. When I interviewed Logboat's Head Brewer Josh Rein a couple months ago, he mentioned this was his everyday drinker and a recipe he refined as a home brewer. I totally understand why he held on to this recipe for so long and couldn't agree more with the everyday drinkability. As I type this, I've now convinced myself to grab a six pack on the way home.
Aroma - Roast aromas with a bit of coffee are the most forward, but there is a bit of caramel and chocolate sweetness as well.
Appearance - Deep reddish brown with a tall off-white head that leaves some great lacing on the glass.
Flavor - Coffee and chocolate are very predominate, with bread crust coming from the pale malts. There is also some sugary sweetness similar to caramel or molasses.
Mouthfeel - On the light side of medium body, but great carbonation makes this one a bit smoother than you'd expect at this ABV.
Overall Impression - I'm not sure I'd crush this one on a hot summer day, but I could easily throw back a few on a nice spring or fall day. It's a very easy drinker, and has a lot more flavor than you'd expect. This one is a winner.


With most paranormal or urban fantasy, somehow the danger directed at the main character somehow puts everyone she cares about at risk and this is what happens here.
Mild spoiler. I really didn't like how Scarlett treated Eli and didn't warn him at all about the impending danger. She warns everybody but him just sending him away without warning. Ugh. I was so pissed.
I'm not on the Jesse bandwagon and I'm not sure if I'll continue with this series if they end up together. And it's not that Eli liked her and she doesn't like him. They're freaking sleeping together for a long time, one night stands, but there is chemistry there.
Jesse doesn't really appreciate who she is and isn't interested in the supernatural world other than how it helps his job.
Enough of that. It was still a good book I didn't regret reading.
Amy McFadden did a good job with narration.


Superb carving of a Labrador in rosewood. The study mounted on a polished rosewood shaft with base metal ferrule. The silver holding the Assay marks for London 1979 with the makers punch JLK The carvers signature is found etched into the upper area of the rosewood shaft. The signature being M.ELLIOT. Condition Beautiful condition throughout free from breaks or cracks.


What sort of crowd anyone?
MFC History and Character Commence rebuild. Fall to the bottom, a couple of years of total embarrassment, at end of year 2 a couple of unexpected wins,. Engender hope Climb ladder to mid-table respectability or a little better. Encourage optimism. Founder, fall back, get passed by other clubs. Repeat.
As ever Josh is very open and informative. Re the main issue, Step 1 in the process is Jesse making a decision. If he decides he wants to go then Josh and his people get to work to get Steven May. As for May himself, from the brief highlight tapes I have seen of him he is clearly a big physical crash and bash type player. He doesn't strike one as being hugely skilful to be honest. He disposals by foot in particular look a bit floaty and imprecise. Oscar looks to be better in that regard. But Josh says they have been following him for a while so they must see more to him. I guess I trust the back room people.
Anyone who saw Smith in last week's VFL prelim got any comment? How did he play?
Goodness, big call! Clearly the selection committee see something in Smith which I for one haven't seen. But I trust them. Sorry for Fritsch, terribly sorry, but its a brutal game. He's young, a fantastic talent, he'll get another chance. Go Dees!
Good luck to all from London. My sister sent me over an MFC scarf during the week, and notwithstanding that it's still pretty warm over here i'll wear it today, as a sign of solidarity with all Demon lovers. I wonder if anyone on the tube will recognise it?? Anyway go Dees. As usual I'll follow the game through this site, too nervous to watch it, and anyway I am supposed to be working! The first few minutes will be crucial.
I have weighed in on this one before. He's a special talent: huge pace, spring, good hands, kicks the ball a mile, fanatic attack on the ball. He'll come good. Talk of trading him is ridiculous.
This game is more than a chance to progress to a prelim. We talk of hoodoos? This is the biggest of them all. We have been humiliated by Hawthorn time after time after time again. Literally for decades. This is the opportunity for redemption and revenge. Sure in public put out the usual bland platitudes about what a great club they are, how we'll have to play at a top to have a chance etc etc. But in the inner sanctum focus on how Hawthorn in general and Clarkson in particular, has made us suffer, made us a total laughing stock. Come the bounce next Friday we tear into them with total ruthlessness.
Well it's now 810am London time, time to get on a red double decker to head into the City of London for work. It's trempting to attempt to say something profound but hell, skip it, just want to say good luck one and all Demons, keep the faith whatever happens tonite. Go Melbourne!!


Root't Thermostat 4 out of 5 based on 15 ratings.
ROOT!T's electronic temperature controller is compatible with all heat mats and is an optional accessory for the ROOT!T Heat Mats. The thermostat turns the heat mat on and off. To maintain optimum temperatures, use ROOT!T Heat Mats with the ROOT!T Thermostat giving ultimate temperature control during propagation.
Root!T Heat Mat Thermostat. Root!T Heat Mat Thermostat – An electronic temperature controller that is compatible with all heat mats. The thermostat controls the temperature of heat mats evenly in colder or warmer than normal environments.
Root!t Electric Thermostat (for Root!t Heat Mat) Root!t's Electric Thermostat is used to control the output of your (separately available) heat mat based around temperature information gathered by its probe, helping to maintain a consistent environment for cuttings and young plants.
ROOT!T Thermostat for Heat Mat Find a Stockist The ROOT!T Thermostat is an electronic device that allows you to maintain the temperature of the root environment by switching the ROOT!T Heat Mats on and off.
With ROOT!T, we aim to recreate the best parts of nature to accelerate germination and develop outstanding plants with the best possible start in life. All of the ROOT!T products complement each other creating a complete range that tailors to all of your propagating needs.
ROOT!T Thermostat for Heat Mats uses an electronic temperature controller that is compatible with all heat mats (regardless of brand), however to maintain optimum temperatures, use ROOT!T Heat Mats with the ROOT!T Thermostat for complete temperature control during propagation.
ROOT!T's electronic temperature controller is compatible with all heat mats and is an optional accessory for the ROOT!T Heat Mats. The thermostat turns the heat mat on and off. To maintain optimum temperatures, use ROOT!T Heat Mats with the ROOT!T Thermostat giving ultimate temperature control during propagation.


Lift Your Spirits, Discover Lehigh Valley.
Tucked amid the hills of eastern Pennsylvania, Lehigh Valley is 90 minutes west of Manhattan and 60 minutes north of Philadelphia. It's home to three charming, historic cities — Allentown, Bethlehem, and Easton — plus an abundance of scenic countryside and quaint towns. Lehigh Valley is easily accessible by major highways and an international airport.


Thank you very much for contacting us. We're very interested in what you have to say, and how we can improve your experience at the 2011 Lower Brandywine Storytelling Festival, and future festivals. We look forward to seeing you on Friday, November 4th and Saturday, November 5th.


text:
Southern Baptists near half-a-million meals prepared during hurricane response
By Brandon Elrod
PENSACOLA, Fla.—Every year, the World Meteorological Organization maintains a list of 21 official names for major storms that originate in the Atlantic. In 2020, the season has been so active that they have had to turn to the Greek alphabet for names, including Tropical Storm Beta, which hit the Texas Gulf Coast September 21.
"That's just been the kind of year that we've had, from COVID hitting in March, through the hurricane season getting started early," said Sam Porter, national director of Southern Baptist Disaster Relief (SBDR) with Send Relief. "We as Southern Baptists have to be ready at all times, and I've been grateful for the way we have been able to respond in unison."
Recovery following Hurricane Laura, which made landfall at the end of August, continues. This crew with Michigan Baptists helped remove a downed tree from a home in DeRidder, La. Photo submitted by Michigan Baptist Disaster Relief.
Hurricanes Laura and Sally have been the most significant storms to make landfall in the U.S. SBDR volunteers have prepared more than 477,000 meals for survivors in the aftermath of those storms.
Nearly 400,000 of those meals have been served following Laura. As mass care, public feeding starts to wind down in Louisiana, storm recovery efforts will continue at least into mid-to-late October following Laura's widespread damage, which affected much of the state.
Volunteer chainsaw crews have completed more than 1,300 jobs as of September 22, cutting up downed trees primarily for residents who otherwise could not afford such help.
Recovery efforts following Hurricane Sally are well underway in Alabama and Florida after the storm made landfall late last week. SBDR teams have already prepared more than 80,000 meals, and response teams have started shifting into response mode.
Following Hurricane Sally's landfall in Alabama, Southern Baptist Disaster Relief (SBDR) made up of Alabama Baptists began assisting storm survivors as they recover from the damage done to their homes, such as this one in Orange Beach, Ala. So far, dozens of recovery jobs have been completed. Photo submitted by Alabama Baptist Disaster Relief.
The needs are great, and hundreds of requests for assistance have come in to SBDR leaders in Alabama and Florida. Delton Beall, director of SBDR for Florida Baptists, expects their response to last at least three to four more weeks.
"People don't know what to say when we tell them this is a ministry provided by Southern Baptist churches and that it is free," Beall said.
A volunteer in Florida told one homeowner struggling to believe there would be no charge that it would, at most, cost a few minutes of his time while volunteers spoke and prayed with him once the work was completed.
"I thought that was a pretty good line," Beall said.
Send Relief supports Southern Baptist Disaster Relief (SBDR) by providing the needed supplies, such as rolled roofing, following a storm. Olive Baptist Church in Pensacola, Fla., which sustained roof damage during Hurricane Sally, served as a hub for SBDR volunteers providing roof repairs, mud out and debris removal for hurricane survivors. Photo provided by Shaun Pillay.
Beall and Mark Wakefield, disaster relief director with Alabama Baptists, are both requesting assistance from disaster relief teams in other states to help meet the needs of survivors.
Requests have centered primarily on tree-related damage more than flooding both in Alabama and in Florida, and teams have completed dozens of jobs so far.
"We are very grateful for our Southern Baptist family and for the prayers and financial support and for being here and being the hands and feet of Jesus when people need to have such a witness," Beall said.
On Friday Sept. 18, Send Relief missionary Kay Bennett of Baptist Friendship House and her team in New Orleans delivered meals to SBDR teams in Alabama to feed survivors and volunteers who were already serving in the wake of Sally.
"I am energized every day seeing how God has been providing for our needs with supplies arriving at just the right time," Porter said. "We have about a month left in hurricane season, and Southern Baptists, through SBDR and Send Relief, are together in this as we continue to meet needs."
Brandon Elrod


Realme 2 Pro is an impressive phone in lower-midrange segment. The phone starts at Rs. 13990. It looks good and is powerful enough to stand out in competition. The phone offers premium looking glossy design while it is actually made out of plastic. But Realme 2 Pro managed to make itself premium looking even without using glass or metal.
Realme 2 Pro has a notch above the display that is small and even improves the look of the phone. It has dedicated dual SIM slot along with a microSD card slot. The tray is located on the left side along with volume rocker. The power button is on the right. Base side has headphone jack, micro USB and headphone jack It has a fingerprint sensor located on the back. The phone feels really good in hand and is solid in build.
It has 6.3-inch FullHD+ (1080×2340) display with 19.5:9 aspect ratio. The display also has gorilla glass protection. The dewdrop notch looks good. The display offers vivid colors and nice viewing angles.
Realme 2 Pro is powered by octa-core Snapdragon 660 with AI engine with Adreno 512 GPU. It comes in 4, GB, 6 GB and 8 GB RAM options. So, select one depending on your choice. The phone handles heavy tasks and games well. So, you will get excellent performance even without paying much. Gamers will also like this phone.
The phone has 16MP + 2MP dual rear camera setup. The primary sensor is Sony IMX398 with f/1.7 aperture. So, it will offer better low-light photos. It also has 16 megapixels front camera. Both rear and front cameras perform well. It also has 4K video recording.
The phone supports both Face Unlock and Fingerprint unlock. It has Dual 4G VoLTE, Wi-Fi 802.11 ac (2.4GHz / 5GHz), Bluetooth 5 LE and GPS + GLONASS connectivity.
Realme 2 Pro also has 3500 mAh battery that is good for a full day usage. It also has intelligent battery management and power saving mode.
The phone offers impressive performance and comes with eye-catching design.
Best price of Realme 2 Pro mobile in India is Rs. 11990. We have tried to list Realme 2 Pro price from all popular and trusted stores. Check the Realme 2 Pro price in various online store and pick the store with cheapest price of Realme 2 Pro. All these stores deliver this phone on many Indian cities including Delhi (NCR), Bangalore, Mumbai, Hyderabad, Chennai, Bhopal, Lucknow, Kolkata and Pune. Keep visiting this page to get updates on Realme 2 Pro Price In India. Check out specifications, expert reviews, pics, videos, comparison and buy Realme 2 Pro at its lowest price.
Realme 2 Pro specifications and features are given below. We collected this data from official website and other trusted resources. Our team always try to publish accurate data but human error is possible. If you find anything wrong, please notify us via contact page.
The Realme 2 Pro keeps the cool looks, but improves the screen, the performance, the main and the selfie cameras, and has more storage.
In that market though, the Realme 2 Pro is a real competitor to the Redmi 6 Pro, Xiaomi Mi A2 and the Honor 9N. This is a brand that western audiences should definitely be keeping an eye on.


text:
Q: Ubuntu made my second HDD disappear from the BIOS! My netbook, an ASUS 1015PX, shipped with two harddrives. After switching to Ubuntu, the second drive isn't recognized by the OS or the BIOS. I've never formatted the second drive, so it's still set up for use by Windows.
I guess I don't care about the data on the drive, I'd just like to be able to use it again. It's probably also worth mentioning that I'm very new to any form of Linux, so I'm remarkably new to the Terminal.

A: You are mistaken. The official specifications for the Asus 1015PX show that it ships with only one hard-drive, which can be either 250/320/500GB.

A: Express Gate can be rebuilt without Windows. I have done it on a friends Asus but cannot find the link to the instructions. You basically have to create a small (5GB?) partition and copy some files to it but it is probably too complex for you to do. Anyway Ubuntu boots up fast enough not to bother using it, especially if you use the suspend function.


The 400cc Bajaj Bike is finally here! Bajaj has officially launched the Dominar 400 in India. The all-new Bajaj D400 generates maximum power of 35 PS @ 8000 rpm and maximum torque of 35 NM @ 6500 rpm. The engine is mated to a 6-speed gearbox. Its standout feature is the LED headlamp, which offers possibly the best illumination among Indian motorcycles at the time of its launch. The all-digital instrument cluster is a 'reverse LCD' type, and offers a lot of information including twin trip meters, a clock and a shift light.
Bajaj Dominar 400 offered 3 Shades, Midnight Blue, Moon White and Twilight Plum.


Sometimes you get so bogged down in work and projects that you forget to kick back and relax. It's certainly true for me. The renovation of our holiday home in Norfolk has taken up every weekend since last summer, and although it's now been finished for a few weeks there never seemed the time to visit and just enjoy it. So last weekend I took the opportunity between bookings to take my two blogging besties, Arianna and Kate for a weekend stay.
It could have been a couple of days of doing not very much at all but I wanted to show them not just the cottage, but the reason why I love the county so much. So, braving the worst the weather could throw at us (you know the English summer? Four seasons in one day!) we explored the coast, ate good food, instagrammed as if our lives depended on it, and generally gossiped as if there was no tomorrow.
Windswept beaches had us gasping for breath, cute little shops tempted us with everything from Cromer crab, to Ascot hats, and every cottage seemed to have roses rambling around the door.
If you'd like to visit, don't forget Brimstone Cottage is available to rent here.
I thought this was Blackpool and Fleetwood at first, very alike! beautiful place! so inspiring!


We've got recipes for your favorite dishes at Asian hot spots P.F. Chang's, Panda Express, Benihana and more.
Applebee's Oriental Chicken Salad: Make this yummy salad yourself and adjust the ingredients to your liking.
Benihana Japanese Fried Rice: This will be your new favorite rice recipe.
Benihana Giner Dressing: Sick of ranch, caesar or balsamic dressing? Give this ginger dressing a try.
Panda Express Orange Chicken: The tangy orange sauce really jazzes up this chicken.
P.F. Chang's Hot and Sour Soup: This hot and sour soup is a great side to an Asian meal.
P.F. Chang's Lettuce Wraps: Learn how to make one of P.F. Chang's most popular appetizers.
P.F. Chang's Garlic Noodles: An easy recipe when you're in the mood for an Asian style dinner.
General Tso's Chicken: It tastes just like takeout, but this chicken is all homemade!


Tahoe Market Pulse: What will President Trump mean for the financial industry?
Donald Trump's surprising victory, along with Republican control of congress, will lead to big changes in the highly regulated financial industry. He has promised to remove many regulations, but which and how? We will soon find out.
We've written a lot about the Department of Labor's fiduciary rule, under which brokers will be required to act in the best interest of their clients. This goes into effect in April and there are already big changes as a result.
Merrill Lynch announced that their brokers will no longer receive commissions on new retirement accounts. Other firms are gearing up for this regulation. But will this rule even happen? A Trump adviser, Anthony Scaramucci, promises to repeal the rule, but it will take time and effort.
One option they may consider is to undermine the rule by dropping its defense in several lawsuits that are underway. The Trump administration could effectively end this regulation by not backing it in the courts and simply agree with its opponents.
This puts the brokers at large firms in a wait-and-see mode while most independent advisers like myself are already governed under the fiduciary rule.
Another regulatory target might be the Dodd-Frank Act, which become law after the 2008 financial crisis. Trump has criticized this act saying that it is the reason bank lending is so low.
At a minimum, they will reduce the regulatory burden for the smaller regional banks. For those banks complying with the law has been a large burden and they are not too big to fail.
Or the law will be "dismantled" as he promised in his campaign. Fed Chair Yellen disagrees. She recently said banks are safer and sounder because of this regulation.
Tax laws, both for individuals and corporations, are in play and they will benefit investors. For individual taxes, both Trump and House Speaker Ryan favor three income tax brackets (12%, 25%, and 33%) with a 20 percent tax on capital gains. Most everyone's tax rates will fall.
President-elect Trump and his new administration will be very busy as they take office so we don't know the priority they'll place on these matters. But it is safe to say there will be less of a regulatory burden moving forward.
That, along with higher interest rates, is why financial stocks have been some of the strongest since the election.


The merging of different areas of expertise in the interests of customer benefit has a long tradition at WEISS. We intermesh and combine the fields of mechanics, electronics and software to create intelligent and convenient solutions.
This classic competence field of mechatronics is supplemented by other areas of expertise such as a profound knowledge of industries, processes, services and supply chain management for customised logistics processes. By combining all this, we play a key role in covering and meeting all of your requirements.
After all, for us the most important thing is creating absolutely precise solutions for our customers – which are the perfect fit in both a technical and an economic sense.
provides you with intelligent and convenient solutions.
Every market is different. We know your industry, its special characteristics and your processes.
This allows us to build a bridge between your requirements and our potential solutions.
process optimisation and delivering service concepts that help you design your automation solutions more efficiently.
technical standard and guarantee absolute precision and economic efficiency.


text:
11

![thumb](http://placehold.it/348x196)

![splash](http://placehold.it/770x433)

## Short

The Machine that Changed the World, Rx For Survival,<br/>
Africans in America, Age of Columbus, and more

## Medium

TODO: Medium-length blurb for banner goes here.

## Long

For many years WGBH produced a large number of critically acclaimed "limited"
or "stand-alone" multi-episode documentary series.  Most of these series were
produced between 1983-2000;  their subjects were history, science, current affairs,
culture, health, music, architecture and more.  For example, "The Health Quarterly"
ran from XXXX-XXXX and was followed by "The AIDS Quarterly".  "The Machine that
Changed the World" focused on the history of the computer,  "Africans in America"
on slavery, etc.  Click on the link below to download a PDF list of these series.
Many still remain relevant and are excellent resources in terms of footage, research
and coverage of their particular subject.

## Links

- [Africans in America (slavery)](http://www.pbs.org/wgbh/aia/home.html)
- [Latin Music](http://www.pbs.org/wgbh/latinmusicusa/)
- [Rx for Survival (Global health)](http://www.pbs.org/wgbh/rxforsurvival/)
- [They Made America  (s)](http://www.pbs.org/wgbh/theymadeamerica/)
- [Building Big (Architecture & Engineering)](http://www.pbs.org/wgbh/buildingbig/)
- [Science Odyssey (s)](http://www.pbs.org/wgbh/aso/tvseries/promo/program.html)

## Grid

- [TODO Title | optional subtitle](/TODO) ![](http://placehold.it/348x196)
- [TODO Title](/TODO) ![](http://placehold.it/348x196)
- [TODO Title](/TODO) ![](http://placehold.it/348x196)