text:
Home / Executive Moves / Robert Mullins Joins Cobham as Corporate Strategy, M&A EVP
Robert Mullins Joins Cobham as Corporate Strategy, M&A EVP
Elizabeth Leigh June 26, 2013	Executive Moves, News
Robert Mullins, a veteran of Northrop Grumman (NYSE: NOC) and ATK (NYSE: ATK), has been appointed executive vice president for corporate strategy and mergers and acquisitions at Cobham plc.
He will report directly to CEO Bob Murphy from the British contractor's U.S. headquarters in Arlington, Va., Cobham said Tuesday.
Mullins most recently served as SVP of corporate strategy at ATK, where he oversaw M&A projects and the company's annual planning process.
He also co-chaired ATK's corporate leadership council.
Mullins worked at Northrop between 2002 and 2010 and most recently served asVP of operations, strategy and development for ISR systems (intelligence, surveillance and reconnaissance).
He holds a degree in government from Franklin & Marshall College, a masters in public and international affairs from the University of Pittsburgh and a Ph.D. in war studies from King's College London.
Tags ATK Cobham plc corporate strategy executive move m&a Northrop Grumman Robert Mullins


text:
Private 3-hour History Tour of Vienna Art Nouveau: Otto Wagner and the City Trains
Embark on a half-day history, scholar led tour of Vienna's Art Nouveau Metro Stations and iconic Art Nouveau buildings while learning about the design elements, political and aesthetic philosophy of the elegant turn-of-century style.
3-hour guided tour of Vienna Art Nouveau metro stations and iconic buildings
Entrance fees: From April to October, when the museum is open, this tour incorporates a visit to the Otto Wagner Pavillon. Admission fees are as following: €5 for General admission €4 for Senior citizens, students, holders of Vienna Card and persons with disabilities
Entrance fees: If you tour on Tuesday to Sunday, €9,50 Adults and €6 students and seniors admission to Secession House to see Gustave Klimt's famous Beethoven Frieze. Your guide will help you to pay.
The question of an efficient infrastructure is a topic that inevitably dominated Vienna during the late 19th century, at the moment when the city's population underwent rapid expansion. The need for a modern system of public transportation was therefore a logical consequence of the city's demographic and topographic upheavals. Thus, in the latter part of the century, Vienna's parliament engaged urban planners to draw up metro lines that were to connect the suburbs with the city centre along the Ring. The architect chosen for this massive and sensitive assignment was Otto Wagner, who was already famous for giving materials and functionality a leading role in his work by contrast with the tendency of many of his peers to privilege ornate decoration. From the beginning, Wagner's aim was to create a metro design that would be iconographic, easy to recognize and which would fit equally into different regions of the city, and which would highlight Vienna's cosmopolitanism.
Starting out at the beautiful pavilion at Karlsplatz, we lay a foundation for our discussion by visiting the small Wagner Museum. From here we walk to the Stadtpark station, the best preserved of the original metro stations still in use. Here we will start to delve into some of the design elements. One of the most remarkable features of this station is the adjoining artificial riverbed constructed for the little Vienna river, since the waterway needed to be rechanneled when the city train was built and one of the major issues was how to integrate the realigned river into the new city landscape.
Our next metro stop visit will be Kettenbrücke station. On our way we visit and explore the famous Sezession art building, the icon par excellence of Viennese Jugendstil, as well as two beautiful apartment houses by Otto Wagner. Here we will flesh out the philosophy behind Jugendstil and consider the symbols and materials favored by its practitioners. From Kettenbrücke station we will step onto the metro for our last stop, a visit to the imperial station. This outstanding building was erected outside the Schönbrunn castle solely for the Emperor to
use. The crown jewel of the line, this station had a symbolic meaning as well, namely to show critics of Vienna's metro that the emperor supported the line. In this small but dynamic building, we will recognize all the elements that we encountered throughout the walk and at the other stations, while also noting the methods used by Wagner to translate the generally bourgeois style of Art Nouveau into an aesthetic with imperial grandiosity.
Operngasse 7, 1010 Wien, Austria
Unless hotel pick up has been arranged, please meet your guide 15 minutes before start time and the default meeting point, Café Museum, Operngasse 7A-1010 Vienna, Austria.
Organised by Insight Cities
Austria Cultural Tour And Sight Seeing
Fortress Hohensalzburg: Observationtower Admission, Dinner and Mozart Concert
Addiction & Drugs - In the footsteps of addiction & drugs
The best of Vienna on foot
Private Day Trip to Bratislava from Vienna
Vienna Mozart Concert at the Musikverein
Full-Day Private Trip from Vienna to Bratislava
Vienna Highlights Private Tour for Kids and Families including Mozart House
Florian's movie Cult Tour
Graz Walking Tour with a licensed guide
Full-Day Private Trip from Vienna to Prague
Sisi Tour in Vienna and Lower Austria
Egon Schiele: All You Wanted to Know About Scandalous Art but Were Afraid to Ask
The Instagrammable Spots of Salzburg Walking Tour with a Local
Historical puzzle tour through Vienna
Private Bavarian Mountain Tour from Salzburg
Vivaldi Four Seasons Concert at St. Charles Church in Vienna
Private Bavarian half day tour from Salzburg - the Eagle's Nest
Private Day Trip to Budapest from Vienna
Private Day Tour of Salzburg from Vienna
City tour / city walk
Magic Christmas Tour in Kitzbuhel
Wines of Vienna: Wine Tasting Tour of Vienna
King Ludwig Castles Neuschwanstein and Linderhof Private Tour from Innsbruck
Salzburg City Tour - On the Traces of Mozart

redpajama_set_name: RedPajamaCommonCrawl


text:
August 29, 2019 @ 11:11am » Dan Lyons
Mother Of 5-Star Prospect Ziaire Williams Updates His Recruiting Timeline
DURHAM, NORTH CAROLINA - FEBRUARY 20: Luke Maye #32 of the North Carolina Tar Heels brings the ball up the court against the Duke Blue Devils during their game at Cameron Indoor Stadium on February 20, 2019 in Durham, North Carolina. (Photo by Streeter Lecka/Getty Images)
Ziaire Williams will probably be one of the more notable members of the 2020 recruiting class. Not only is he a five-star recruit, but he's high school teammates with the sons of LeBron James and Dwyane Wade at Sierra Canyon.
247Sports currently ranks Williams as the No. 5 player in the country, and No. 2 among small forwards.
He recently cut down his list to seven programs. Arizona, Duke, North Carolina, Oregon, Stanford, UCLA, and USC all made the cut.
Two weeks ago, Rivals reported that UNC and Stanford had "separated themselves from the pack" while Duke and UCLA were both "picking up ground."
Now, we have a slightly better idea where things stand, after a recent 247 interview with Williams' mother. The blue-chip wing is set to open his official visits this weekend, with a trip to nearby USC.
Five-star small forward Ziaire Williams will take his first official visit to USC this weekend, his mother Marquita Williams told 247Sports.
Thus far this is the only visit Williams, who will finish his high school career at Chatsworth (Calif.) Sierra Canyon, has scheduled.
"[We are] planning one official at a time," his mother said.
Given what we have heard about the rest of his list, it sounds like Arizona and Oregon may be on the outside looking in, but both of those programs have serious recruiting chops, so I wouldn't count them out either.
In addition to the USC visit, Williams' mother Marquita said that a decision will likely come in the spring. Ziaire Williams has a big decision to make, and it sounds like he and his family will take some time to make sure it is the correct one.
[247Sports]
Filed Under: Arizona, College Hoops, Duke Blue Devils, North Carolina, Oregon, Stanford, Top Stories, UCLA, USC
About Dan Lyons
Dan is an Editor at The Spun.


This workshop will examine a range of approaches to collecting and using spoken data as a means of improving professional practice. The focus will be on helping participants to become active reflective practitioners and researchers of their own contexts. There will be an emphasis on data-led approaches which highlight the importance of dialogue and collaboration, our main argument being that most professional activities (including teaching and teacher education) are accomplished through talk. By studying the ways in which we interact, we can gain closer insights into professional practices and professional development.
In the session, we'll be demonstrating how, by using appropriate tools, classroom data, introspection and some kind of dialogue, practitioners can both improve their practices and make their teaching more enjoyable. By using actual data as empirical evidence and by focusing on the interactions which take place in any professional setting, we suggest how we might create active, engaged learning environments. We will cover a variety of contexts, including both language teaching and teacher-training perspectives.
The session will end with suggestions for a range of research questions that need further attention and a discussion of research opportunities that exist.
The approach will be very 'hands-on' and we'll be making extensive use of audio and videotaped materials in addition to a range of 'tools' specifically designed for class-based research.
Steve Walsh is Professor of Applied Linguistics at Newcastle University, and is author of Exploring Classroom Discourse: Language in Action (Routledge, 2011). His book Teacher Development and Classroom Interaction is due to be published by Edinburgh University Press in 2012.
Steve Mann is an Associate Professor at the University of Warwick, and is author of Teacher Development: A Discourse for Individual and Group Development (VDM Verlag, 2011). He has previously taught at both Aston University and the University of Birmingham, as well as in Hong Kong, Japan and Europe.
Guest moderator: John Gray, Institute of Education, University of London.
1. Do you agree with the suggestion that for materials development to become more credible, it needs to become more empirical? If so, which areas would you identify as being in need of research?
2. Tomlinson's paper – in line with the tendency of much of the materials literature – is focused mainly on materials evaluation rather than materials analysis. From a research perspective, how do you view this tendency?
3. What is the best way to go about evaluating materials - given the proliferation of checklists and frameworks for materials evaluation, and even, as reported here, a set of questions to evaluate such instruments?
4. Given that most good teachers are said to engage in materials adaptation, what avenues for research do you see in this area?
5. The article points out that few academic theorists and researchers are actually involved in materials writing – although there have been exceptions in the past (e.g. Stephen Pit Corder) and in the present (Mike McCarthy). Who should write materials in your view?
6. What do you see as the relevance of corpus descriptions of language to materials writing – particularly with regard to materials for use in your own setting?
7. The paper suggests that both initial and in-service teacher education could do more to facilitate a move away from reliance on textbooks. Do you agree with this suggestion and, if so, how might it be facilitated?
8. The article mentions the uses of new technologies (e.g. mobile phones) in making language learning materials available to students. What kinds of research do think need to be undertaken to explore the actual affordances of new technologies for materials development?
9. In one study carried out in three countries Tomlinson reports that 92% of the teachers consulted regularly used a coursebook and that 78% of them were negative about coursebooks. How can this be explained?
10. In the section on ideology in materials, Tomlinson suggests that it is important for teachers and materials writers to develop 'constructive criticality' – do you agree, and if so, how might this be done?


text:
The Horticulture Building
957, Bank Street, Ottawa, City of, Ontario, K1S, Canada
Built in 1914, the Horticulture Building is one of eight permanent exhibition halls located at the Central Canada Exhibition at Lansdowne Park, in the City of Ottawa. The Horticulture Building is easily identified by its Prairie Style and includes a stepped base, strong vertical corner piers and flat projecting roof planes.
The Horticultural Building is recognized by the City of Ottawa for its architectural and historical value in By-law 208-89.
The Horticultural Building has a long-standing tie with the Central Canada Exhibition, which was founded in 1888 and is the oldest continuously operating agricultural fair in Canada. The Horticulture Building was completed in 1914 just in time for that year's opening of the exhibition. As one of eight exhibition buildings on the grounds of Lansdowne Park in Ottawa, the Horticultural Building occupies a key portion of the exhibition grounds adjacent to the steel clad Aberdeen Pavilion. In addition to serving the annual Exhibition, this building also served a second function as a public curling rink during the winter season.
Designed by Francis C. Sullivan, an Ottawa architect associated with Franklin Lloyd Wright's design philosophy of 'organic architecture', the Horticulture Building is an excellent Canadian interpretation of the Prairie Style. The dominant rectilinear massing, strong corner piers, broad horizontal roof, and sparse stylized brick and stucco ornament is illustrated here in one of Canada's earliest expressions of modernism. In addition the stepped base, strong vertical corner piers, flat projecting roof planes, rectangular stucco panels, grouped casement windows with geometric glazing patterns and minimal but highly stylized ornament further enhance the Horticulture Building. The Prairie Style is rare in Canada but the Ottawa area has several examples due to the efforts of Francis C. Sullivan.
The design and location of this building, forms a unique element within the Lansdowne Park exhibition grounds and in its close physical proximity to the Aberdeen Pavilion (or Cattle Castle).
The Lansdowne Park Development Strategy approved by City Council on November 7, 1984, called for the retention of only the Aberdeen Pavilion, the McElroy Building, and the Civic Centre and Frank Clare Stadium. It called for the phased removal of all others which had outlived their usefulness. However, in 1989, the Community Services and Operations Committee of the City of Ottawa recommended that at least the front section of the Horticulture Building be retained in any redevelopment of Lansdowne Park. In 1991, Ottawa City Council voted to remove the heritage designation to accommodate a convention centre proposal, but the building was re-designated a heritage structure in 1994. The designation does not include the one-storey additions on the east side of the exhibition hall portion of the building. Currently in a less than favourable state, this structure is now primarily used as a storage facility.
Sources: City of Ottawa By-law 208-89; Department of Planning and Development (Oct. 21, 1988), City of Ottawa Heritage Survey and Evaluation Form (July 1993); "Horticultural Building Lansdowne Park, Ottawa, Ontario: A Review of Planning Considerations for the Building's Disposition" (Commonwealth Historic Resource Management Limited); "The Horticulture Building – a Rehabilitation Study" (Pierre Elliott, 1986), "Ottawa: A Guide to Heritage Structures" (City of Ottawa, 2000).
Character defining elements that define the Horticulture Building's heritage value include its:
- brick construction
- flat-roofed pavilion that forms the front facade
- overhanging roof eaves
- corner piers
- grouping of upper floor vertical casement windows with geometric glazing patterns
- stepped foundation
- brick walls accentuated with select stone trimming, stucco panels and wood banding along the roof
- inclusion as part of the complex of exhibition buildings located in Lansdowne Park (beside the Rideau Canal) and adjacent to the Aberdeen Pavilion (Cattle Castle)
Developing Economies
Building Social and Community Life
Francis C. Sullivan
City of Ottawa 110 Laurier Avenue West Ottawa, Ontario K1P 1J1
Monastère du Précieux Sang
774, Echo Drive, Ottawa, City of, Ontario
The austere and imposing former Monastère du Précieux Sang at 774 Echo Drive is a four-storey…
Hay House, also known as Echo Bank, is a two-and-a-half-storey stone house incorporating a mix of…
The Powell House
85, Glebe Ave., Ottawa, Ontario
The Powell House is a large, white, two-storey stucco structure in the Spanish Colonial Revival…


Home Music Industry News thesocialmedium.net promo strategy and consultation.
thesocialmedium.net promo strategy and consultation.
The Social Medium is an unparalelled music brand marketing agency that offers high end Spotify and social media marketing services for music artists as well as business and personal brands. With guided hands on strategy development and promo packages, The Social Medium bridges the gap between indie and major label artists to create long term and opportunities.
what made you start Socialmedium?
The Social Medium was started to help music artists and brands devleop their education and strategy for industry relevant practices at their own pace. Our focus is to help add value as many was possible with promo strategy and consultation.
Are the plays and followers real?
Any sucess stories you can tell us about?
The Social Medium has worked with countless indie artists and even major labels and artists like Fetty Wap and RGF ISLAND in breaking records and establishing positive online reputation.
What advice do you have for a new artist ?
The biggest advice for new artists is to focus on long term goals and to establish what the audience will see and experience beyond the music being released. What people see and the reasons you give them to care is what ultimately seperates low end music releases from high value. Contact The Social Medium with questions and for consultation.
thesocialmedium.net can be reached here.


With over 9 billion notes created by 225 million people around the world, in over 25+ languages every day, Evernote's products have become the default place for individuals and teams who want to remember everything, turn ideas into action, and work better together.
"Here at Evernote, our workforce, workplace, and technologies are constantly evolving to keep up with the demand of our 225 million users. We believe that with OneLogin's Unified Access Management platform, we will continue to succeed for years to come through simple and secure access."
Between 2008 and 2017, the small but mighty IT team at Evernote managed their internal users and security via a homegrown, on-premise solution built by their own engineers. It worked well enough for a while, but once the SaaS boom hit, Evernote realized the importance of moving the company as a whole completely to the cloud, including their user directory. They needed a single unified access management system (UAM) that was secure, with a user-friendly interface, little to no internal IT support required, and one that understood the unique needs of a technology cloud company.


text:
Superpower Ethics: The Rules of the Game [Abstract]
Ethics & International Affairs, Volume 1 (1987)
Black and White Chess Pieces via Shutterstock
To mark the death of the esteemed Stanley Hoffmann on September 13, 2015, this article is free online for a limited time.
International systems have historically come in two forms: those based on the balance of power and those of a revolutionary nature, including systems organized around bipolar competition. Hoffmann finds the world order of 1987 to contain both these systems and judges it both ambiguous and original. While the tension of these extremes can make the world appear "anarchical," there are certain agreed upon rules by which the superpowers interact. These rules ultimately preserve order by embracing competition between the United States and the Soviet Union; superpower confrontation is prevented by each nation holding to their own ideals and sovereignty while embracing nuclear deterrence. Having revealed the rules of the superpower game, Hoffmann then subjects them to ethical judgment. Despite the historic duration of peace between superpowers that seems to have been sustained by these rules, Hoffmann finds them both ethically flawed and ultimately unstable. Turning to a brief consideration of United States foreign policy, he points to particular moral difficulties in U.S. stances and urges the development of superpower rules that are effective and ethical.
To read the full text of this article, click here.
Stanley Hoffmann Former Professor Emeritus at Harvard UniversityView Bio
Intervention Security Ethics International Relations Preventive War U.S. Foreign Policy Europe North America Russia & the Former Soviet Republics Russia United States


text:
Navigate Property News
Fee-Free Shops
Home Insurance: Compare & Save
Compare the latest home loan offers
Finder Reviews
Pet insurance Australia: Your go-to guide
Share Trading Accounts
Podcast: 7 common mistakes first home buyers make
How to navigate the purchase of your first property like a pro.
Sally McMullen
Updated Aug 4, 2020
You only get to buy your first property once. Better do it right!
In this episode of Pocket Money, we take a look at some of the common mistakes that people make when first jumping into the housing market.
To help us through the ins and outs of the first home buyer experience, we've invited our friend and property expert, Michael Yardney back to the studio. You can also find him on the popular Michael Yardney Podcast twice-weekly.
We discuss seven common mistakes that first-time buyers often make from research to finance, and we talk about how to manage the emotions of everything from the loan application to the auction.
This is the first episode in a two-part series about property buying mistakes. Subscribe now so you can get next week's episode, which is all about the things you should avoid as a property investor.
The Michael Yardney Podcast
Michael Yardney's Property Update
9 more tips for first home buyers
All your first home buyer questions answered
Listen to our Home Loans 101 episode
Your state-by-state guide to the First Home Owners Grant
The First Home Loan Deposit Scheme
Read the transcript of this episode
Episode 128 transcript
Sally:
Welcome back to Pocket Money. Hey Marc.
Hey Sally.
So every week we talk about, you know, loads of different money topics, news, whatever's going on in Australia, so of course, it only makes sense that we're eventually going to land on property.
Yes, it is Australia's favourite pastime, as the news rags say.
But instead of telling you what to do when it comes to buying your first home, today we're going to be talking about what not to do.
Yeah, that's right. So we're talking to Michael Yardney, and keen listeners will know that we have spoken to Michael in the past. And we had an awesome chat with him about the psychological habits that differentiate the money-savvy with the not-so-money-savvy.
Can you not look at me!
Oh, I didn't. I was just looking in that part of the room.
Sure, sure.
So yeah, this week, as you mentioned, we're gonna be talking about the mistakes that first home buyers make, but this is actually a two-parter. So next week, we'll be hitting you with the common mistakes that property investors make.
And much to my surprise, those two things aren't mutually exclusive. There are mistakes you can make as a first home buyer that you may make or may not make as an investor. So interesting tips to pick up along the way.
So you're definitely going to get a lot out of this episode and the next one, so stay tuned for next week's episode too. And if this is your first time here, before we play the interview, make sure you don't miss out on any further episodes. Head on over to Spotify, fang us a follow, go to Apple Podcasts, subscribe for free. You don't have to do much and you'll get all the future episodes delivered right into your grimy little mitts.
Welcome, Michael. Thanks so much again for joining us on Pocket Money.
Michael Yardney:
My pleasure, Sally.
So today we're talking about first home buyer mistakes, and we have a list of the top seven. So we're going to go through them quite quickly and we've also got some juicy questions to ask along the way. Let's start with number one. So buying emotionally.
Of course people buy emotionally, because it's a very large financial commitment, but it's also your home, your castle. But it's important to realise that when you're buying your first home – and this is what we're talking about today – it's not going to be your forever home, it's not going to be perfect, so you should use it as a stepping stone to your next property. So rather than buying something that you love, you've also got to think about it as an investment because not all properties increase in value, and so if you buy in the wrong location or the wrong sort of property, it won't be the stepping stone to the next one, it won't get the capital growth that you're hoping for. And the other thing is, if you buy emotionally and overpay, it's going to cost you a lot more than you need, and that's going to be an extra cost in stamp duty and interest for a long, long period of time. The trouble is, is that property markets are starting to pick up again, Marc and Sally, and people are starting to get a little bit of FOMO – fear of missing out. They hear on the news that auction clearance rates are high, that property values are going up, and they're scared. So rather than thinking logically, they're worried that they're going to miss out again, and they pay too much.
As a side note to this, what are your thoughts on – and I daresay, we'll cover this in our next segment on investment mistakes – but what are your thoughts on rentvesting as an alternative for potentially emotional homebuyers?
I think it's a really, really great idea. The concept of rentvesting is renting where you want to live and investing where you can afford. Because for many first home buyers, they can't afford to own a house in most of the locations where they want to live in our big capital cities, and many can't even afford to own an apartment. So why not rent where you want to live and use your funds to buy an investment property that increases in value? Now, some people will say, well, rent money's dead money, but you actually forget that on the other side, a tenant is paying you rent on your investment property and helping defray the mortgage costs there.
And for the second mistake, what about not factoring in all of the real costs? So, of course there is the price of the property, which I think is what everybody looks at first, but can you walk us through some of the other costs that should be factored in?
That's a really good point, Sally, because people forget all the others. The big big one is stamp duty. Stamp duty actually comes from an old term, years ago. It's a government tax, basically, and it's about 5% of the purchase price of your property. So that's many, many tens of thousands of dollars in many cases. Now, currently, in some states, there are a number of first home owner stamp duty concessions, because, over time, various state governments are trying to encourage first home buyers into the market by giving them some concessions. So stamp duty is a big cost. There's also the legal cost of conveyancing, which involves getting all the contracts right and making sure they all settle, and that's somewhere between $1,500 and $2,000. There's moving costs to consider. And when you rent, you don't think about paying things like rates and taxes and insurance and maintenance, body corporate fees, those sort of things. But all of a sudden, if you own your own first home – and by talking about a home, I'm also talking about apartments – these can add up to thousands of dollars annually, so you need to budget for those as well. And of course, there's the mortgage costs that you've got to be able to afford on a regular monthly basis.
Yeah, that's great. And then, so linking in with point number two is number three, which is overextending financially. So maybe you could talk to us a bit about how do you know if you're paying too much?
Well, at the moment, the banks are being very cautious, and so they are making sure that people don't overextend themselves. And this is a result of the Hayne Royal Commission and all the publicity that we're hearing, and APRA and ASIC making sure that banks are taking into account individuals' abilities to repay. In other words, responsible lending. In the old days, there was also the concern of interest rates going up, but that's not going to be a big issue for the next couple of years. So first of all, you've got to understand that you've got to do a budget and understand what your monthly mortgage costs are. And as I said, the banks are already factoring in that maybe the rates could go up a little bit, so you should be able to cover that. A lot of people don't leave themselves a buffer. They spend their last cents. And when you move into a place, there are always little things to do. Even if it's a new apartment or house that you buy, there are costs as well. So leave yourself some money in the kitty for unexpected costs, for expenses, for outgoings. And one way of making sure that you don't overextend yourself is, rather than going to a bank, go to a proficient mortgage broker who will actually help you through the maze of lending, get you your best loans and also help you do a bit of a budget as well.
Yeah, that's a great point. So when I bought my first place – and we're gonna talk about this in the next point – but I got a building inspection done, and then it brought all these issues to the surface, which I would need to get fixed if I bought the property, so then that made me sort of put aside savings. But one thing that I did want to ask you, Michael, which is, when you're dealing with a broker, oftentimes, they will try and help you borrow as much as you can, and as a result of that, they might encourage you to use more of your savings than you wanted to. Are there any strategies or any things you can think about that could help you avoid that?
Just like any other profession, there are good brokers and there are maybe ones who don't take your interests into account. I like to think of a broker as a bit of a finance strategist who's going to understand your needs, and a good finance strategist will make sure that you do have a buffer there. Sure they get paid by the amount of the loan you take, but it doesn't really make that much difference if you still leave $20,000, or the loan that you take is $20,000-$30,000. To be honest, most first home buyers can't have a big buffer. There isn't enough in the kitty to save for the deposit, pay for the stamp duty, pay for the outgoings and have a big buffer. But it's important to make yourself aware of these things. And I think that's the beauty of this podcast, so you can outsource some of the expertise, but don't outsource the understanding. Get knowledgeable, know what's going on, and that way you're not going to get yourself into these traps.
And my final question about not overextending yourself financially is, how useful do you think it is to use a buyer's agent, specifically for an auction when you're buying your first home, to make you sort of not overbid or anything like that?
Well, I've got a vested interest. My company Metropole is Australia's largest buyer's agent and we've got our own offices in Melbourne, Sydney, Brisbane. And we actually do help a lot of homebuyers, not just investors, and I believe we're levelling the playing field and it's not just at auction. But auction, as you pointed out, is definitely a place where emotions run high, and the auctioneers know how to tap into that. So a good auctioneer will make you bid more than you feel that you planned to, because they tap into the emotion and the excitement of the auction. It leads to people over-committing themselves a bit more than they should. So rather than getting mum or dad to bid for you – because, in many cases, they've only bought one or two properties in their life as well – having somebody who's a professional negotiator on your side, levels the playing field. Because, Marc, if you think about it, the seller has got a professional, a trained negotiator, on their side protecting them.
Yeah, that's a great point.
And I think that's so true. It's almost like an auction is FOMO happening in real time. Like, very stressful. You're like, yes! Okay! $10 billion! I'll take it!
Well a good auctioneer knows how to pull out the emotion in you, and I remember going to an auction only a couple of weekends ago, and the auctioneer looked at the bidder who had stopped and he said to him, "Do you know what's going to happen if you don't make another bid?" And the guy stared at him and he said, "You're going to go home and you're going to be in trouble!" Because there was his wife staring at him, lovingly wanting to have that property. And he played on the emotion, and then guy made another bid.
So I think that last point links pretty nicely into number four, which is not doing your proper due diligence. So what are some of the commonly missed steps that everyone should have on their to-do list before they do buy a home?
Sure, the less sexy sides of home buying. Marc pointed it out a while ago, building and pest inspections to identify minor and maybe some major issues. So, at the moment, there is a lot of publicity about the structural and the big issues happening in those high rise apartment towers, particularly in Sydney, but in the other capital cities as well. In Melbourne, there are a lot of issues with fire rating and cladding of buildings as well. So, maybe a little hint would be, avoid those big apartment towers that were built in the last decade or so and that are currently being built at the moment. There's a lot of stigma around those, and that's likely to remain for quite some time. You'd be a very brave investor or homebuyer buying into those even if they're cheap now, because developers are having real trouble selling off. So educate yourself about these issues. Now, clearly, the big things like Opal Towers and some of the others are outliers. Most are not as big a structural problem as that, but there's a stigma. They're all being tarred much with the same brush. There's a very poor secondary market, banks are not as prepared to lend against them, owner's corporations are having difficulty getting insurance for these big towers. So be careful about the sort of building you're buying into. Also, even if it is a new building and not one of these high rise ones, that's even where a building and pest inspection is important to identify issues. Now, Marc, you pointed out that you found some issues that had to be repaired. You can use those as a bargaining tool. Yes, I know you want $550,000 but, look, I've just identified that there's $5,000 worth of repairs that I've got to do, so let's be a bit more realistic with the price. You can use it to negotiate a lower price, or, if you can't afford it, walk away from a deal. It's also important to get a solicitor to check your contract. Sure, the agent should be honourable and the contracts, in general, are standard form, but there are other little clauses that they sometimes insert without you knowing that protects the other side. So, I would also always use a solicitor to check before you sign anything, and the agent will understand that. If they try to get you to use their same lawyer, walk away. You've got to have your own legal representative check it. And they check things like council zoning, building approvals, to make sure everything's protecting you as well. And don't forget to insure the property. One of the things that happens when you buy new property is, interestingly, it's your responsibility, even before you settle. It doesn't happen often, but I've heard of cases where somebody's bought a house and they settle 60 days later and in between, it actually burns down or it's badly damaged. And interestingly, even though you haven't taken possession, by law, it's your responsibility, not the vendor's. And so, therefore, you insure the property as soon as you sign a contract, it's agreed and exchanged, not on settlement.
Yeah, there's so much gold in that. Someone I know – actually, this is more in terms of investing – but they had an investment property and they just let the landlord insurance lapse somehow, and then there was flooding and it went into the next-door neighbour's apartment, and it was just, it was just a really annoying kind of situation for both of them.
So again, this is where you talked about a buyer's agent helping. If you have a good buyer's agent, they're more than just an order taker, they will take you through the whole process, hold your hand at the beginning to get an understanding of what your needs are, then they will help you select the right property that are on-market and off-market properties. Because interestingly, there are properties available to buyer's agents before you find out about them on the big property portals. Some are truly off-market, but most are actually what we call pre-market. What actually happens is, an agent lists the property and it takes a couple of weeks to get the photographs done, the floor plans, the styling of the property, and so they ring their A-list of clients first and then their B-list, and then they tell the other people in the office and they tell their clients as well, and eventually it gets listed on realestate.com or Domain or the other big portals. But those who are on the speed dial, the favourites of the estate agents, they get access to these earlier. So that's where a buyer's agent can sneakily get you in before others.
Yeah. VIP treatment. One last point, which I think is pretty important to mention about not doing due diligence is that, if you haven't bought a property yet, one thing that really surprised me was how expensive things are to fix. It's not like when you have a car and like you can get out of most problems with, you know, not spending like a huge amount of money. Things that you wouldn't think are expensive, like, for example, I had to replace screws on my roof or something like that, and it was so much more money than I thought it should be. So I think that's when these building inspections can be really important.
And that's the other reason you need to have some cash reserve or a financial buffer, as I said, because initially, mum and dad used to pay for that and then you move out and the landlord pays for that. Now all of a sudden it's your responsibility.
Okay, so moving on to point five. Not understanding the contract you're signing. So yeah, maybe tell us a bit about what people should do to protect and educate themselves before signing a contract.
A contract is a legally binding document. Once you've signed it, you can't say, oops, I didn't understand my obligations. And that's the reason why I was suggesting that you always get your legal representative, a solicitor or a proficient conveyancer, to check the contract and understand what's going on. Now, it varies from state to state. So in Victoria, all vendors or sellers have to give what's called a vendor's statement, where you actually have the outgoings and the owner's corporation certificates and rates and taxes. In other states, that's not part of the contract, and then there's a due diligence period. So sometimes you have to do the due diligence beforehand, like in New South Wales, you would want to get the owner's corporation certificates to see what's going on, and are there any disputes within the building, are there any unexplained big expenses coming up, or is there some money sitting in the kitty for repairs. And in Queensland, it's a little bit different. Usually, there's a period between when you actually sign a contract and when it goes unconditional when you can do the due diligence. And that's a bit hard for most people to do themselves, because they don't even know what due diligence they've got to do. And that's where your solicitor would help you or your buyer's agent would help you. So it's not just the contract that you're signing, but all the bits and pieces around the contract as well that you need to understand.
Yeah, this is such a big one. So when I bought my property – I know I keep going back to this, but –
Please do!
The settlement happened over Christmas, so there was a period where everyone was away for holidays. And you really value a good solicitor at that point, because they'll confidently tell you, okay, this is where your deposit needs to go, this is how you can get it to me, these are the different payment forms, this is the date when you need to do this, this is the date when you need to do that. So yeah, I can't underscore that enough.
Another thing you mentioned about Christmas: There are times to settle and times you shouldn't. So don't do it just before Christmas when it's really, really hard. And the other thing is, don't do it on Friday afternoon. A lot of people want to settle on Friday afternoon because then they can move into their new property over the weekend. Interestingly, settlements don't always occur when you plan it. Because if you think about it, Marc, you bought your property from somebody, who actually had to move out that day because they bought a property from somebody else, who interestingly, had to move out that day because they bought a property from somebody else. And, all of a sudden, somewhere along that chain, something doesn't work out, somebody doesn't have their money, the other place isn't ready on time or whatever, and you can often get this domino effect. And if you suddenly have to move out and on Friday afternoon you've got nowhere to sleep, you can get yourself into trouble. You can't get onto the contractors or the banks until the next day. So in fact, avoid settling on a Friday if you can. Most of the time, it'll all work fine. But if you're one of those who are caught by doing it on a Friday afternoon, and you can't get on to the banks till the next day and they can't roll it over till Monday, it leaves you in a bit of embarrassing position.
You'll be taking out a long-term Ibis Hotel residence.
Exactly, rock up to mum and dad's with your boxes full of stuff, like, hey! So the next one is not getting finance pre-approval. So what does that mean?
A lot of people actually look on great sites like finder.com.au. And they get an indication of how much they can borrow, they can see what the loans are, and then they go off and buy a property and then they go to try and get their loan organised. Wrong. It doesn't work that way. You've actually got to get the money upfront. Let me explain that, today, in this current lending environment, it's much, much harder to get a loan, there's a lot more hoops you've got to go through, it takes longer than it used to. So, if you get a pre-approval, which, is always conditional, it's not an unconditional guarantee, it's subject to the valuation of the property and it being in the right postcode and things like that, but you will know how much you can spend and not overcommit yourself. So get your finance organised first, preferably through a mortgage broker, possibly through a bank, and then you know how much you can spend.
Yeah, and I think it's worth mentioning here that like, not every pre-approval is the same. Some are more, I suppose, like, serious, or they're deeper than others. So yeah, that's another reason why you should speak to your broker or your lender and actually ask what exactly does this pre-approval mean for me?
Well, that's an interesting point, because banks are cautious about certain types of buildings and certain postcodes. So, therefore, as we mentioned a moment ago with regard to all the new high rise towers and the problems, they're not going to lend as much or at all for those. And for certain postcodes, particularly in the CBDs of our capital cities and surrounding where there are very large oversupplies of apartments, they're only going to lend a lower loan-to-value ratio. In other words, they won't necessarily lend you 80-85% of the value of your property, they may only lend you less. And the other thing is, in a lot of the big towers, they don't want what they call a concentration risk. And they're only prepared to allow a certain number of their clients to buy into those buildings. So it's important to understand what your pre-approval will allow. So as you say, it's not a blanket thing that you can go anywhere and buy any property up to that value, Marc.
Okay, so the final point: Trying to do it on your own. So what things can you do by yourself and what things should you get expert help for?
Well, as I said a moment ago, you should outsource the expertise and you should use a buyer's agent, you should use a mortgage broker, you need to have a solicitor, but you shouldn't outsource the understanding. You should get an understanding of the basics of this, and there's lots of great articles on finder.com.au about how to buy homes. The MyProperty website, there's lots of information. There are books out there as well. So go in educated because the other side, the other party is probably more educated than you, and knowledge is power. But I believe it is worth investing in having a buyer's agent, as we said before, to represent you, because you're going to pay a learning fee. You're going to pay the market a fee by overpaying or making mistakes. I'd rather get somebody else's experience, because they'll have the perspective that money can't buy – but you can hire it.
Okay, so those are the tips for first home buying mistakes. Thank you, Michael, for that.
Okay, wow. So now we know all of the mistakes not to make as first home buyers. Marc's like, it's too late for me.
Yeah, exactly. I'm done.
So next week, as we mentioned earlier, we're going to be covering all of the property investor mistakes to avoid with Michael, so don't miss out on that.
Yeah, so stay tuned.
Thanks for listening to Pocket Money from Finder. Head over to finder.com.au/podcast for the show notes for this episode. The Finder podcast is intended to provide you with tips, tools and strategies that will help you make better decisions. Although we're licenced and authorised, we don't provide financial advice. So please consider your own situation or get advice before making any decisions based on anything in our show. Thanks for listening.
The Finder Pocket Money podcast is intended to provide you with tips, tools and strategies that will help you make better decisions. Although we're licensed and authorised, we (and our guests) aren't providing any form of financial or legal advice. So please consider your own situation and get proper advice about your individual circumstances before making any decisions based on anything in our show. Thanks for listening.
Have questions for the Pocket Money crew? Want to suggest a future episode idea? Hoping to speak with other curious young adults sorting through their lives and their money? Join our community for exclusive access and discussions about the show and all things money:
Join the Pocket Money private Facebook group
Follow Pocket Money on Instagram
Follow Finder on Twitter
Like Finder on Facebook
Pocket Money is hosted by Sally McMullen and Marc Terrano. The show is produced by Franko Ali and Ankita Shetty. Editing and theme music from Brianna Ansaldo of Bamby Media.
finder.com.au (ACL 385509. CAR 432664) is Australia's most popular comparison site. We like to help, and we understand that our podcast provides information, insight and entertainment, but it's not personal advice. Consider your own circumstances (or get advice) before you make any decision based on our general comments and commentary.
Sally McMullen is a creative content producer at Finder. Sally has written about credit cards for almost 5 years, authoring almost 900 articles on Finder alone. She has also been published in Yahoo Finance, Dynamic Business, Financy and Mamamia, as well as Music Feeds and Rolling Stone. Sally has a Bachelor of Communication and Media Studies majoring in Journalism (Hons) from the University of Wollongong.
Podcast: What's Black Friday like for Australia's biggest retailer? You can get a very low 2.59% mortgage rate as part of a Black Friday deal
Finder's RBA cash rate survey: 89% of experts support axing stamp duty nationally
An annual land tax should replace the one-off financial sledgehammer of stamp duty on property purchases, say experts. All experts (40/40) participating in Finder's RBA cash rate survey are predicting a cash rate hold this December.
Podcast: How to plan a realistic wedding budget
Don't say "I do" to debt: Tips and tricks to create a wedding budget, cut back costs and avoid debt for your big day.
Podcast: Can you really make money from a side hustle?
Are side hustles hype or a way of making extra cash fast? We talk to four people making their side hustles a success.
Podcast: Roger Montgomery talks about the best time to buy stocks
2020's stock market has been a rollercoaster, but is there an opportunity in the volatility? Investor Roger Montgomery explains where to start investing.
Podcast: Tax time tips for EOFY 2020
Finder experts explain how to claim home office expenses on your 2020 tax return, tips for new investors and how to get the most out of the EOFY sales in 2020.
Podcast: The real reason you need a will
No money, no assets, no will? Find out why you still need a will and how to make one in the latest episode of the Pocket Money podcast.
Podcast: Curveballs – how to stay resilient when the going gets tough
In this episode of Pocket Money, we talk about how to cope when life goes wrong, financially, emotionally or physically. From coronavirus to cancer, how can you learn to bounce back quicker and in better shape than ever?
RBA survey: 58% experts say now not a good time to buy property, predict further price falls
Nearly 6 in 10 experts say now is not a good time to buy property as economists predict average house prices will fall in all capital cities by up to 10.5%.
Podcast: Where do our charity donations actually go?
In this episode of Pocket Money, we discuss where our donations go, the responsibility of charities and what to look out for before you donate.
Podcast: How to recession-proof your finances during COVID-19
If we're heading for an economic recession, it's time to start taking your personal finances seriously. This podcast is a how-to guide for all Australians.


text:
Glenn Funeral Homes
Funeral Homes in Glenn, CA
Below you fill find all funeral homes and cemeteries in or near Glenn.
Suburbs of Glenn: Bayliss, Ordbend.
Glenn County funeral flowers can be purchased from one of the local funeral shops we partner with.
Looking for assisted living or memory care near Glenn? Look into The Woodlake.
Affordable Mortuary
Affordable Mortuary was established in 1993. Affordable Mortuary specializes in cremation. Funeral and burial services are also offered. At Affordable Mortuary, we realize that not everyone wants or needs the traditional funeral service, nor can...
587 Country Dr, Chico, CA 95928 -
Chapel of the Pines Mortuary-Crematory
Following the end of WWII, our founders, Paul and Frances Gaukel, had a dream, to build a much needed funeral home in a sleepy little town named Paradise. They had no idea that this quiet community of 3,000 people would grow so fast. As our town...
5691 Almond St, Paradise, CA 95969 -
Butte City
Richvale
Nearby Funeral Homes for Glenn
587 Country Dr
Bidwell Chapel
Brusie Funeral Home
5691 Almond St
Paradise, CA 95969
Chico Cemetery
881 Mangrove Ave
Colusa Cemetery
Colusa, CA 95932
Fd Sweet & Son
114 N Shasta St
Willows, CA 95988
825 A St
Orland, CA 95963
Glen Oaks Memorial Park
Glenn County Willows Cemetery
800 E Wood St
Gridley Block Funeral Chapel
679 Ohio St
Gridley-Biggs Cemetery Dist
Hall Brothers Corning Mortuary
Corning, CA 96021
Holy Cross Cemetery
1741 Wescott Rd
Live Oak Cemetery
3545 Pennington Rd
Live Oak, CA 95953
Mc Nary Moore Funeral Service
Neptune Society of Northern CA
1353 E 8th St
Newton-Bracewell Cremation
14130 Skyway
Magalia, CA 95954
7655 Skyway
Newton-Bracewell Funeral Homes
680 Camellia Way
Orland Cemetery Dist
3900 County Road P
Oroville Cemetery Dist
5646 Lincoln Blvd
Oroville Funeral Home
1454 Montgomery St
Paradise Cemetery Dist
980 Elliott Rd
Ramsey's Funeral Home
1175 Robinson St
Rose Chapel Mortuary Crematory
Scheer Memorial Chapel
Skyway Crematory
Sorensen's Mortuary-Gridley
Glenn is an unincorporated community in Glenn County, California. It lies at an elevation of 98 feet (30 m). The town is located on the Sacramento River, at the intersection of State Route 45 and State Route 162. It is about ten miles (16 km) east of Interstate 5 and Willows on the U.S. Geological Survey 7.5-minute quadrangle, Glenn, California. The U.S. Geological Survey, National Geographic Names Database, calls its existence official with a feature ID of 1658621 and lists the NAD27 coordinates of the community as 39°31′19″N 122°00′50″W. The ZIP Code, shared with Ordbend and Bayliss, is 95943. The community is inside area code 530. This area is flagged as rural by the U.S. Census Bureau.
Glenn Obituaries
There are no obituaries in our database for this location.
The town is located at the intersection of California State Route 45 Route 45 and State Route 162 (California) Route 162. It's about ten miles (16 km) east of Interstate 5 (California) 5 and Willows, California on the US Geological Survey 7.5-minute quadrangle, 'Glenn, California'. The ZIP Code, shared with Ordbend, California and Bayliss, is 95943. This area is flagged as rural by the US Census Bureau. .
Funeral Homes in Willows
Funeral Homes in Orland
Funeral Homes in Chico
Funeral Homes in Oroville
Funeral Homes in Paradise
Funeral Homes in Yuba City
We work with local florists and flower shops to offer same day delivery. You will find budget sympathy flowers in Glenn here. Our funeral flowers are cheap in price but not in value.
Should You Take Out a Funeral Loan?
Paying for a funeral is an issue everyone will need to deal with at some point in their lives. Whether the death of a loved one moves the subject to the forefront, or if you are estate planning and want to make advance arrangements, you will soon find yourself... more »


text:
[Iran]
Bishop praises Iran
Christopher Morgan, The Sunday Times
A leading Church of England bishop has claimed the Iranian president showed a better understanding of "moral and spiritual" values at the end of the naval hostage crisis than Britain's political leaders.
Michael Nazir-Ali, the Bishop of Rochester, contrasted the words of Mahmoud Ahmadinejad favourably with Britain's "free-floating" attitudes.
The bishop said that, watching the release of the British sailors and marines last week, "I saw on the one hand what Iran was doing, and what the president [of Iran] said had much to do with the moral and spiritual tradition of their country.
"The president talked about the religious background to the release, with reference to the Prophet's birthday and the passing over of Christ. What struck me was that if there were any values on the British side they were free-floating and not anchored in a spiritual and moral tradition.
"Unless we reroot ourselves in a spiritual and moral tradition, we won't know what we stand for and will not be able to confront other people, countries and ideological movements who are very clear where they stand."
It emerged this weekend that Ahmadinejad's reference to the "passing over" of Christ may have been in response to a note from Pope Benedict XVI. A Vatican source said the pontiff had written to the Iranian president the day before the release pleading for a goodwill Easter gesture.
Nazir-Ali's words about Iran were echoed by Thomas Burns, the Roman Catholic Bishop of the Forces, who praised the Iranians' release of the prisoners. Burns said that, as the Iranians believed their territorial waters had been violated, they had chosen to "put their faith into action to resolve the situation".
"Faith in a forgiving God has been exemplified in action by their good deeds," he said. "The Iranians offered to release the sailors and marines not just as the result of diplomacy but also as an act of mercy in accordance with their religion."
The government will also face rebukes today over its Middle East policies from a number of senior Church of England bishops in Easter sermons.
Source: http://www.timesonline.co.uk/tol/news/uk/article1626722.ece
"Islamophobia was about encoding the community of faith - Muslims and Islam by violence and images of hate, which are encoded by hatred and marginalization. Islamophobia is a resocialization process.. it means that [Muslims are] to be desocialized away from one's own culture and to be resocialized into another culture. When Muslim feels that Islamic culture is not good - this part of the islamophobia policy - to bring Muslims to the point that they feel they are lacking something and they should change their own culture and they should merge to the western culture.."
Saied Ameli
Director of the Institute of North American and European Studies, Tehran University, research interest - Cultural Globalisation.


Summer has officially ended. Which means there won't be any more trips to the amusement park until next year. Is there anything more fun than going to an amusement park? That is, unless you hate rides. As it turns out, plenty of visitors to amusement parks end up hating the rides they go on. And fortunately for us, there's video of lots of them! So let's take a look back at the funniest amusement park videos!
This next amusement park video features a little girl meeting Gaston from Beauty and the Beast. There's nothing like watching your kid meet their hero in real life. But you can really tell how much this girl cares about Gaston when she meets him. Because she gives him a hug lasts… maybe a little too long. In fact, we don't really know exactly how long it lasted because the video starts once she's started the hug. It could've been minutes!
I think even Gaston is taken aback with how long this hug lasts!
Here's another amusement park ride video – but the woman in this video isn't as passive about hating the ride as the guy in the first video. In fact, one could conservatively call this a freakout video! Here's a woman on the Slingshot ride at the carnival. And the moment it starts, she is not having it. And you can instantly tell how much she hates it from the devilish grunts and groans she emits.
This woman riding the Slingshot sounds like she's possessed and undergoing an exorcism.
Finally, we've saved the best amusement park video for last. Here's a POV video of someone riding a roller coaster. Looks like a blast. But keep your eyes on the back of the head of the woman in front of him. Because once the coaster takes a particularly sharp turn, her wig flies off! You even hear her say "my wig flew off!" It might be a little embarrassing for her. But probably not considering if you really care about how your wig looks, you might want to make sure it's particularly well secured when you're riding roller coasters!
Here's hoping no one else noticed this lady's wig flew off on this roller coaster!
Anyway, hopefully these videos will hold you over until next summer!


text:
Alex Shephard
Bloomberg/Getty
Trump's aides are going to have a tough four years.
There's something almost comforting in reading about them privately griping about Trump's penchant for making things worse, for his total inability to deal with slights (real or perceived) in an adult fashion, and for his all-consuming and Nixonian resentment. These stories were a hallmark of a simpler time—the 2016 campaign—when two or three would be published a month.
On Sunday, The New York Times published a long and well-sourced piece in which people close to Trump express their displeasure about the first few days of his administration.
The lack of discipline troubled even senior members of Mr. Trump's circle, some of whom had urged him not to indulge his simmering resentment at what he saw as unfair news coverage. Instead, Mr. Trump chose to listen to other aides who shared his outrage and desire to punch back. By the end of the weekend, he and his team were scrambling to get back on script.
It's abundantly clear that Trump has no intention of getting out of "campaign mode" anytime soon or of honoring the conventions of the presidency. Trump lying repeatedly in front of the CIA's vaunted Wall of Stars, and Sean Spicer getting all hot and bothered about accurate media coverage, are both damaging to the institution of the presidency—but damaging institutions is what Trump is all about. Same goes for punching back (remember Khizr Khan?). The 2016 election still hasn't really ended.
One reason why Trump is still in campaign mode is that he can't get over the campaign itself. Attacks on his legitimacy affect him profoundly, and seem to result in unforced errors from him and his staff. Every time Trump is reminded of the fact that he did not win the popular vote, is not popular, had a relatively small inaugural crowd, and/or won the election with the help of a foreign power, he flies off the handle. For Democrats, attacking Trump's legitimacy should be the tip of the spear, causing him to discredit himself while they (hopefully) build a sustainable political infrastructure.


In this lesson plan, Chloe Sefton shares with you a few fun and engaging activities to inspire of love critical analysis and create what she likes to call 'good noise' in your lesson.
The learning directive in this lesson is: To understand how to analyse the rivalry of Tom and Gatsby in Chapter 7 of The Great Gatsby.
Click here for more free lesson plans for KS4 English literature.


text:
// ImGui GLFW binding with OpenGL3 + shaders
// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
// (GL3W is a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc.)

// Implemented features:
//  [X] User texture binding. Cast 'GLuint' OpenGL texture identifier as void*/ImTextureID. Read the FAQ about ImTextureID in imgui.cpp.
//  [X] Gamepad navigation mapping. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'.

// You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this.
// If you use this binding you'll need to call 4 functions: ImGui_ImplXXXX_Init(), ImGui_ImplXXXX_NewFrame(), ImGui::Render() and ImGui_ImplXXXX_Shutdown().
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
// https://github.com/ocornut/imgui

// CHANGELOG
// (minor and older changes stripped away, please see git history for details)
//  2018-05-25: OpenGL: Removed unnecessary backup/restore of GL_ELEMENT_ARRAY_BUFFER_BINDING since this is part of the VAO state.
//  2018-05-14: OpenGL: Making the call to glBindSampler() optional so 3.2 context won't fail if the function is a NULL pointer.
//  2018-03-20: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors and ImGuiBackendFlags_HasSetMousePos flags + honor ImGuiConfigFlags_NoMouseCursorChange flag.
//  2018-03-06: OpenGL: Added const char* glsl_version parameter to ImGui_ImplGlfwGL3_Init() so user can override the GLSL version e.g. "#version 150".
//  2018-02-23: OpenGL: Create the VAO in the render function so the setup can more easily be used with multiple shared GL context.
//  2018-02-20: Inputs: Added support for mouse cursors (ImGui::GetMouseCursor() value, passed to glfwSetCursor()).
//  2018-02-20: Inputs: Renamed GLFW callbacks exposed in .h to not include GL3 in their name.
//  2018-02-16: Misc: Obsoleted the io.RenderDrawListsFn callback and exposed ImGui_ImplGlfwGL3_RenderDrawData() in the .h file so you can call it yourself.
//  2018-02-06: Misc: Removed call to ImGui::Shutdown() which is not available from 1.60 WIP, user needs to call CreateContext/DestroyContext themselves.
//  2018-02-06: Inputs: Added mapping for ImGuiKey_Space.
//  2018-01-25: Inputs: Added gamepad support if ImGuiConfigFlags_NavEnableGamepad is set.
//  2018-01-25: Inputs: Honoring the io.WantSetMousePos flag by repositioning the mouse (ImGuiConfigFlags_NavEnableSetMousePos is set).
//  2018-01-20: Inputs: Added Horizontal Mouse Wheel support.
//  2018-01-18: Inputs: Added mapping for ImGuiKey_Insert.
//  2018-01-07: OpenGL: Changed GLSL shader version from 330 to 150. (Also changed GL context from 3.3 to 3.2 in example's main.cpp)
//  2017-09-01: OpenGL: Save and restore current bound sampler. Save and restore current polygon mode.
//  2017-08-25: Inputs: MousePos set to -FLT_MAX,-FLT_MAX when mouse is unavailable/missing (instead of -1,-1).
//  2017-05-01: OpenGL: Fixed save and restore of current blend function state.
//  2016-10-15: Misc: Added a void* user_data parameter to Clipboard function handlers.
//  2016-09-05: OpenGL: Fixed save and restore of current scissor rectangle.
//  2016-04-30: OpenGL: Fixed save and restore of current GL_ACTIVE_TEXTURE.

#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)
#define _CRT_SECURE_NO_WARNINGS
#endif

#include "imgui.h"
#include "imgui_impl_glfw_gl3.h"

// GL3W/GLFW
#include <GL/gl3w.h>    // This example is using gl3w to access OpenGL functions (because it is small). You may use glew/glad/glLoadGen/etc. whatever already works for you.
#include <GLFW/glfw3.h>
#ifdef _WIN32
#undef APIENTRY
#define GLFW_EXPOSE_NATIVE_WIN32
#define GLFW_EXPOSE_NATIVE_WGL
#include <GLFW/glfw3native.h>
#endif

// GLFW data
static GLFWwindow*  g_Window = NULL;
static double       g_Time = 0.0;
static bool         g_MouseJustPressed[3] = { false, false, false };
static GLFWcursor*  g_MouseCursors[ImGuiMouseCursor_COUNT] = { 0 };

// OpenGL3 data
static char         g_GlslVersion[32] = "#version 150";
static GLuint       g_FontTexture = 0;
static int          g_ShaderHandle = 0, g_VertHandle = 0, g_FragHandle = 0;
static int          g_AttribLocationTex = 0, g_AttribLocationProjMtx = 0;
static int          g_AttribLocationPosition = 0, g_AttribLocationUV = 0, g_AttribLocationColor = 0;
static unsigned int g_VboHandle = 0, g_ElementsHandle = 0;

// OpenGL3 Render function.
// (this used to be set in io.RenderDrawListsFn and called by ImGui::Render(), but you can now call this directly from your main loop)
// Note that this implementation is little overcomplicated because we are saving/setting up/restoring every OpenGL state explicitly, in order to be able to run within any OpenGL engine that doesn't do so.
void ImGui_ImplGlfwGL3_RenderDrawData(ImDrawData* draw_data)
{
    // Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != framebuffer coordinates)
    ImGuiIO& io = ImGui::GetIO();
    int fb_width = (int)(io.DisplaySize.x * io.DisplayFramebufferScale.x);
    int fb_height = (int)(io.DisplaySize.y * io.DisplayFramebufferScale.y);
    if (fb_width == 0 || fb_height == 0)
        return;
    draw_data->ScaleClipRects(io.DisplayFramebufferScale);

    // Backup GL state
    GLenum last_active_texture; glGetIntegerv(GL_ACTIVE_TEXTURE, (GLint*)&last_active_texture);
    glActiveTexture(GL_TEXTURE0);
    GLint last_program; glGetIntegerv(GL_CURRENT_PROGRAM, &last_program);
    GLint last_texture; glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture);
    GLint last_sampler; glGetIntegerv(GL_SAMPLER_BINDING, &last_sampler);
    GLint last_array_buffer; glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &last_array_buffer);
    GLint last_vertex_array; glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &last_vertex_array);
    GLint last_polygon_mode[2]; glGetIntegerv(GL_POLYGON_MODE, last_polygon_mode);
    GLint last_viewport[4]; glGetIntegerv(GL_VIEWPORT, last_viewport);
    GLint last_scissor_box[4]; glGetIntegerv(GL_SCISSOR_BOX, last_scissor_box);
    GLenum last_blend_src_rgb; glGetIntegerv(GL_BLEND_SRC_RGB, (GLint*)&last_blend_src_rgb);
    GLenum last_blend_dst_rgb; glGetIntegerv(GL_BLEND_DST_RGB, (GLint*)&last_blend_dst_rgb);
    GLenum last_blend_src_alpha; glGetIntegerv(GL_BLEND_SRC_ALPHA, (GLint*)&last_blend_src_alpha);
    GLenum last_blend_dst_alpha; glGetIntegerv(GL_BLEND_DST_ALPHA, (GLint*)&last_blend_dst_alpha);
    GLenum last_blend_equation_rgb; glGetIntegerv(GL_BLEND_EQUATION_RGB, (GLint*)&last_blend_equation_rgb);
    GLenum last_blend_equation_alpha; glGetIntegerv(GL_BLEND_EQUATION_ALPHA, (GLint*)&last_blend_equation_alpha);
    GLboolean last_enable_blend = glIsEnabled(GL_BLEND);
    GLboolean last_enable_cull_face = glIsEnabled(GL_CULL_FACE);
    GLboolean last_enable_depth_test = glIsEnabled(GL_DEPTH_TEST);
    GLboolean last_enable_scissor_test = glIsEnabled(GL_SCISSOR_TEST);

    // Setup render state: alpha-blending enabled, no face culling, no depth testing, scissor enabled, polygon fill
    glEnable(GL_BLEND);
    glBlendEquation(GL_FUNC_ADD);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glDisable(GL_CULL_FACE);
    glDisable(GL_DEPTH_TEST);
    glEnable(GL_SCISSOR_TEST);
    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

    // Setup viewport, orthographic projection matrix
    glViewport(0, 0, (GLsizei)fb_width, (GLsizei)fb_height);
    const float ortho_projection[4][4] =
    {
        { 2.0f/io.DisplaySize.x, 0.0f,                   0.0f, 0.0f },
        { 0.0f,                  2.0f/-io.DisplaySize.y, 0.0f, 0.0f },
        { 0.0f,                  0.0f,                  -1.0f, 0.0f },
        {-1.0f,                  1.0f,                   0.0f, 1.0f },
    };
    glUseProgram(g_ShaderHandle);
    glUniform1i(g_AttribLocationTex, 0);
    glUniformMatrix4fv(g_AttribLocationProjMtx, 1, GL_FALSE, &ortho_projection[0][0]);
    if (glBindSampler) glBindSampler(0, 0); // We use combined texture/sampler state. Applications using GL 3.3 may set that otherwise.

    // Recreate the VAO every time
    // (This is to easily allow multiple GL contexts. VAO are not shared among GL contexts, and we don't track creation/deletion of windows so we don't have an obvious key to use to cache them.)
    GLuint vao_handle = 0;
    glGenVertexArrays(1, &vao_handle);
    glBindVertexArray(vao_handle);
    glBindBuffer(GL_ARRAY_BUFFER, g_VboHandle);
    glEnableVertexAttribArray(g_AttribLocationPosition);
    glEnableVertexAttribArray(g_AttribLocationUV);
    glEnableVertexAttribArray(g_AttribLocationColor);
    glVertexAttribPointer(g_AttribLocationPosition, 2, GL_FLOAT, GL_FALSE, sizeof(ImDrawVert), (GLvoid*)IM_OFFSETOF(ImDrawVert, pos));
    glVertexAttribPointer(g_AttribLocationUV, 2, GL_FLOAT, GL_FALSE, sizeof(ImDrawVert), (GLvoid*)IM_OFFSETOF(ImDrawVert, uv));
    glVertexAttribPointer(g_AttribLocationColor, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(ImDrawVert), (GLvoid*)IM_OFFSETOF(ImDrawVert, col));

    // Draw
    for (int n = 0; n < draw_data->CmdListsCount; n++)
    {
        const ImDrawList* cmd_list = draw_data->CmdLists[n];
        const ImDrawIdx* idx_buffer_offset = 0;

        glBindBuffer(GL_ARRAY_BUFFER, g_VboHandle);
        glBufferData(GL_ARRAY_BUFFER, (GLsizeiptr)cmd_list->VtxBuffer.Size * sizeof(ImDrawVert), (const GLvoid*)cmd_list->VtxBuffer.Data, GL_STREAM_DRAW);

        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, g_ElementsHandle);
        glBufferData(GL_ELEMENT_ARRAY_BUFFER, (GLsizeiptr)cmd_list->IdxBuffer.Size * sizeof(ImDrawIdx), (const GLvoid*)cmd_list->IdxBuffer.Data, GL_STREAM_DRAW);

        for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++)
        {
            const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[cmd_i];
            if (pcmd->UserCallback)
            {
                pcmd->UserCallback(cmd_list, pcmd);
            }
            else
            {
                glBindTexture(GL_TEXTURE_2D, (GLuint)(intptr_t)pcmd->TextureId);
                glScissor((int)pcmd->ClipRect.x, (int)(fb_height - pcmd->ClipRect.w), (int)(pcmd->ClipRect.z - pcmd->ClipRect.x), (int)(pcmd->ClipRect.w - pcmd->ClipRect.y));
                glDrawElements(GL_TRIANGLES, (GLsizei)pcmd->ElemCount, sizeof(ImDrawIdx) == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT, idx_buffer_offset);
            }
            idx_buffer_offset += pcmd->ElemCount;
        }
    }
    glDeleteVertexArrays(1, &vao_handle);

    // Restore modified GL state
    glUseProgram(last_program);
    glBindTexture(GL_TEXTURE_2D, last_texture);
    if (glBindSampler) glBindSampler(0, last_sampler);
    glActiveTexture(last_active_texture);
    glBindVertexArray(last_vertex_array);
    glBindBuffer(GL_ARRAY_BUFFER, last_array_buffer);
    glBlendEquationSeparate(last_blend_equation_rgb, last_blend_equation_alpha);
    glBlendFuncSeparate(last_blend_src_rgb, last_blend_dst_rgb, last_blend_src_alpha, last_blend_dst_alpha);
    if (last_enable_blend) glEnable(GL_BLEND); else glDisable(GL_BLEND);
    if (last_enable_cull_face) glEnable(GL_CULL_FACE); else glDisable(GL_CULL_FACE);
    if (last_enable_depth_test) glEnable(GL_DEPTH_TEST); else glDisable(GL_DEPTH_TEST);
    if (last_enable_scissor_test) glEnable(GL_SCISSOR_TEST); else glDisable(GL_SCISSOR_TEST);
    glPolygonMode(GL_FRONT_AND_BACK, (GLenum)last_polygon_mode[0]);
    glViewport(last_viewport[0], last_viewport[1], (GLsizei)last_viewport[2], (GLsizei)last_viewport[3]);
    glScissor(last_scissor_box[0], last_scissor_box[1], (GLsizei)last_scissor_box[2], (GLsizei)last_scissor_box[3]);
}

static const char* ImGui_ImplGlfwGL3_GetClipboardText(void* user_data)
{
    return glfwGetClipboardString((GLFWwindow*)user_data);
}

static void ImGui_ImplGlfwGL3_SetClipboardText(void* user_data, const char* text)
{
    glfwSetClipboardString((GLFWwindow*)user_data, text);
}

void ImGui_ImplGlfw_MouseButtonCallback(GLFWwindow*, int button, int action, int /*mods*/)
{
    if (action == GLFW_PRESS && button >= 0 && button < 3)
        g_MouseJustPressed[button] = true;
}

void ImGui_ImplGlfw_ScrollCallback(GLFWwindow*, double xoffset, double yoffset)
{
    ImGuiIO& io = ImGui::GetIO();
    io.MouseWheelH += (float)xoffset;
    io.MouseWheel += (float)yoffset;
}

void ImGui_ImplGlfw_KeyCallback(GLFWwindow*, int key, int, int action, int mods)
{
    ImGuiIO& io = ImGui::GetIO();
    if (action == GLFW_PRESS)
        io.KeysDown[key] = true;
    if (action == GLFW_RELEASE)
        io.KeysDown[key] = false;

    (void)mods; // Modifiers are not reliable across systems
    io.KeyCtrl = io.KeysDown[GLFW_KEY_LEFT_CONTROL] || io.KeysDown[GLFW_KEY_RIGHT_CONTROL];
    io.KeyShift = io.KeysDown[GLFW_KEY_LEFT_SHIFT] || io.KeysDown[GLFW_KEY_RIGHT_SHIFT];
    io.KeyAlt = io.KeysDown[GLFW_KEY_LEFT_ALT] || io.KeysDown[GLFW_KEY_RIGHT_ALT];
    io.KeySuper = io.KeysDown[GLFW_KEY_LEFT_SUPER] || io.KeysDown[GLFW_KEY_RIGHT_SUPER];
}

void ImGui_ImplGlfw_CharCallback(GLFWwindow*, unsigned int c)
{
    ImGuiIO& io = ImGui::GetIO();
    if (c > 0 && c < 0x10000)
        io.AddInputCharacter((unsigned short)c);
}

bool ImGui_ImplGlfwGL3_CreateFontsTexture()
{
    // Build texture atlas
    ImGuiIO& io = ImGui::GetIO();
    unsigned char* pixels;
    int width, height;
    io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height);   // Load as RGBA 32-bits (75% of the memory is wasted, but default font is so small) because it is more likely to be compatible with user's existing shaders. If your ImTextureId represent a higher-level concept than just a GL texture id, consider calling GetTexDataAsAlpha8() instead to save on GPU memory.

    // Upload texture to graphics system
    GLint last_texture;
    glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture);
    glGenTextures(1, &g_FontTexture);
    glBindTexture(GL_TEXTURE_2D, g_FontTexture);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels);

    // Store our identifier
    io.Fonts->TexID = (void *)(intptr_t)g_FontTexture;

    // Restore state
    glBindTexture(GL_TEXTURE_2D, last_texture);

    return true;
}

bool ImGui_ImplGlfwGL3_CreateDeviceObjects()
{
    // Backup GL state
    GLint last_texture, last_array_buffer, last_vertex_array;
    glGetIntegerv(GL_TEXTURE_BINDING_2D, &last_texture);
    glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &last_array_buffer);
    glGetIntegerv(GL_VERTEX_ARRAY_BINDING, &last_vertex_array);

    const GLchar* vertex_shader =
        "uniform mat4 ProjMtx;\n"
        "in vec2 Position;\n"
        "in vec2 UV;\n"
        "in vec4 Color;\n"
        "out vec2 Frag_UV;\n"
        "out vec4 Frag_Color;\n"
        "void main()\n"
        "{\n"
        "	Frag_UV = UV;\n"
        "	Frag_Color = Color;\n"
        "	gl_Position = ProjMtx * vec4(Position.xy,0,1);\n"
        "}\n";

    const GLchar* fragment_shader =
        "uniform sampler2D Texture;\n"
        "in vec2 Frag_UV;\n"
        "in vec4 Frag_Color;\n"
        "out vec4 Out_Color;\n"
        "void main()\n"
        "{\n"
        "	Out_Color = Frag_Color * texture( Texture, Frag_UV.st);\n"
        "}\n";

    const GLchar* vertex_shader_with_version[2] = { g_GlslVersion, vertex_shader };
    const GLchar* fragment_shader_with_version[2] = { g_GlslVersion, fragment_shader };

    g_ShaderHandle = glCreateProgram();
    g_VertHandle = glCreateShader(GL_VERTEX_SHADER);
    g_FragHandle = glCreateShader(GL_FRAGMENT_SHADER);
    glShaderSource(g_VertHandle, 2, vertex_shader_with_version, NULL);
    glShaderSource(g_FragHandle, 2, fragment_shader_with_version, NULL);
    glCompileShader(g_VertHandle);
    glCompileShader(g_FragHandle);
    glAttachShader(g_ShaderHandle, g_VertHandle);
    glAttachShader(g_ShaderHandle, g_FragHandle);
    glLinkProgram(g_ShaderHandle);

    g_AttribLocationTex = glGetUniformLocation(g_ShaderHandle, "Texture");
    g_AttribLocationProjMtx = glGetUniformLocation(g_ShaderHandle, "ProjMtx");
    g_AttribLocationPosition = glGetAttribLocation(g_ShaderHandle, "Position");
    g_AttribLocationUV = glGetAttribLocation(g_ShaderHandle, "UV");
    g_AttribLocationColor = glGetAttribLocation(g_ShaderHandle, "Color");

    glGenBuffers(1, &g_VboHandle);
    glGenBuffers(1, &g_ElementsHandle);

    ImGui_ImplGlfwGL3_CreateFontsTexture();

    // Restore modified GL state
    glBindTexture(GL_TEXTURE_2D, last_texture);
    glBindBuffer(GL_ARRAY_BUFFER, last_array_buffer);
    glBindVertexArray(last_vertex_array);

    return true;
}

void    ImGui_ImplGlfwGL3_InvalidateDeviceObjects()
{
    if (g_VboHandle) glDeleteBuffers(1, &g_VboHandle);
    if (g_ElementsHandle) glDeleteBuffers(1, &g_ElementsHandle);
    g_VboHandle = g_ElementsHandle = 0;

    if (g_ShaderHandle && g_VertHandle) glDetachShader(g_ShaderHandle, g_VertHandle);
    if (g_VertHandle) glDeleteShader(g_VertHandle);
    g_VertHandle = 0;

    if (g_ShaderHandle && g_FragHandle) glDetachShader(g_ShaderHandle, g_FragHandle);
    if (g_FragHandle) glDeleteShader(g_FragHandle);
    g_FragHandle = 0;

    if (g_ShaderHandle) glDeleteProgram(g_ShaderHandle);
    g_ShaderHandle = 0;

    if (g_FontTexture)
    {
        glDeleteTextures(1, &g_FontTexture);
        ImGui::GetIO().Fonts->TexID = 0;
        g_FontTexture = 0;
    }
}

static void ImGui_ImplGlfw_InstallCallbacks(GLFWwindow* window)
{
    glfwSetMouseButtonCallback(window, ImGui_ImplGlfw_MouseButtonCallback);
    glfwSetScrollCallback(window, ImGui_ImplGlfw_ScrollCallback);
    glfwSetKeyCallback(window, ImGui_ImplGlfw_KeyCallback);
    glfwSetCharCallback(window, ImGui_ImplGlfw_CharCallback);
}

bool    ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks, const char* glsl_version)
{
    g_Window = window;
    g_Time = 0.0;

    // Store GLSL version string so we can refer to it later in case we recreate shaders. Note: GLSL version is NOT the same as GL version. Leave this to NULL if unsure.
    if (glsl_version == NULL)
        glsl_version = "#version 150";
    IM_ASSERT((int)strlen(glsl_version) + 2 < IM_ARRAYSIZE(g_GlslVersion));
    strcpy(g_GlslVersion, glsl_version);
    strcat(g_GlslVersion, "\n");

    // Setup back-end capabilities flags
    ImGuiIO& io = ImGui::GetIO();
    io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors;   // We can honor GetMouseCursor() values (optional)
    io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos;    // We can honor io.WantSetMousePos requests (optional, rarely used)

    // Keyboard mapping. ImGui will use those indices to peek into the io.KeysDown[] array.
    io.KeyMap[ImGuiKey_Tab] = GLFW_KEY_TAB;
    io.KeyMap[ImGuiKey_LeftArrow] = GLFW_KEY_LEFT;
    io.KeyMap[ImGuiKey_RightArrow] = GLFW_KEY_RIGHT;
    io.KeyMap[ImGuiKey_UpArrow] = GLFW_KEY_UP;
    io.KeyMap[ImGuiKey_DownArrow] = GLFW_KEY_DOWN;
    io.KeyMap[ImGuiKey_PageUp] = GLFW_KEY_PAGE_UP;
    io.KeyMap[ImGuiKey_PageDown] = GLFW_KEY_PAGE_DOWN;
    io.KeyMap[ImGuiKey_Home] = GLFW_KEY_HOME;
    io.KeyMap[ImGuiKey_End] = GLFW_KEY_END;
    io.KeyMap[ImGuiKey_Insert] = GLFW_KEY_INSERT;
    io.KeyMap[ImGuiKey_Delete] = GLFW_KEY_DELETE;
    io.KeyMap[ImGuiKey_Backspace] = GLFW_KEY_BACKSPACE;
    io.KeyMap[ImGuiKey_Space] = GLFW_KEY_SPACE;
    io.KeyMap[ImGuiKey_Enter] = GLFW_KEY_ENTER;
    io.KeyMap[ImGuiKey_Escape] = GLFW_KEY_ESCAPE;
    io.KeyMap[ImGuiKey_A] = GLFW_KEY_A;
    io.KeyMap[ImGuiKey_C] = GLFW_KEY_C;
    io.KeyMap[ImGuiKey_V] = GLFW_KEY_V;
    io.KeyMap[ImGuiKey_X] = GLFW_KEY_X;
    io.KeyMap[ImGuiKey_Y] = GLFW_KEY_Y;
    io.KeyMap[ImGuiKey_Z] = GLFW_KEY_Z;

    io.SetClipboardTextFn = ImGui_ImplGlfwGL3_SetClipboardText;
    io.GetClipboardTextFn = ImGui_ImplGlfwGL3_GetClipboardText;
    io.ClipboardUserData = g_Window;
#ifdef _WIN32
    io.ImeWindowHandle = glfwGetWin32Window(g_Window);
#endif

    // Load cursors
    // FIXME: GLFW doesn't expose suitable cursors for ResizeAll, ResizeNESW, ResizeNWSE. We revert to arrow cursor for those.
    g_MouseCursors[ImGuiMouseCursor_Arrow] = glfwCreateStandardCursor(GLFW_ARROW_CURSOR);
    g_MouseCursors[ImGuiMouseCursor_TextInput] = glfwCreateStandardCursor(GLFW_IBEAM_CURSOR);
    g_MouseCursors[ImGuiMouseCursor_ResizeAll] = glfwCreateStandardCursor(GLFW_ARROW_CURSOR);
    g_MouseCursors[ImGuiMouseCursor_ResizeNS] = glfwCreateStandardCursor(GLFW_VRESIZE_CURSOR);
    g_MouseCursors[ImGuiMouseCursor_ResizeEW] = glfwCreateStandardCursor(GLFW_HRESIZE_CURSOR);
    g_MouseCursors[ImGuiMouseCursor_ResizeNESW] = glfwCreateStandardCursor(GLFW_ARROW_CURSOR);
    g_MouseCursors[ImGuiMouseCursor_ResizeNWSE] = glfwCreateStandardCursor(GLFW_ARROW_CURSOR);

    if (install_callbacks)
        ImGui_ImplGlfw_InstallCallbacks(window);

    return true;
}

void ImGui_ImplGlfwGL3_Shutdown()
{
    // Destroy GLFW mouse cursors
    for (ImGuiMouseCursor cursor_n = 0; cursor_n < ImGuiMouseCursor_COUNT; cursor_n++)
        glfwDestroyCursor(g_MouseCursors[cursor_n]);
    memset(g_MouseCursors, 0, sizeof(g_MouseCursors));

    // Destroy OpenGL objects
    ImGui_ImplGlfwGL3_InvalidateDeviceObjects();
}

void ImGui_ImplGlfwGL3_NewFrame()
{
    if (!g_FontTexture)
        ImGui_ImplGlfwGL3_CreateDeviceObjects();

    ImGuiIO& io = ImGui::GetIO();

    // Setup display size (every frame to accommodate for window resizing)
    int w, h;
    int display_w, display_h;
    glfwGetWindowSize(g_Window, &w, &h);
    glfwGetFramebufferSize(g_Window, &display_w, &display_h);
    io.DisplaySize = ImVec2((float)w, (float)h);
    io.DisplayFramebufferScale = ImVec2(w > 0 ? ((float)display_w / w) : 0, h > 0 ? ((float)display_h / h) : 0);

    // Setup time step
    double current_time =  glfwGetTime();
    io.DeltaTime = g_Time > 0.0 ? (float)(current_time - g_Time) : (float)(1.0f/60.0f);
    g_Time = current_time;

    // Setup inputs
    // (we already got mouse wheel, keyboard keys & characters from glfw callbacks polled in glfwPollEvents())
    if (glfwGetWindowAttrib(g_Window, GLFW_FOCUSED))
    {
        // Set OS mouse position if requested (only used when ImGuiConfigFlags_NavEnableSetMousePos is enabled by user)
        if (io.WantSetMousePos)
        {
            glfwSetCursorPos(g_Window, (double)io.MousePos.x, (double)io.MousePos.y);
        }
        else
        {
            double mouse_x, mouse_y;
            glfwGetCursorPos(g_Window, &mouse_x, &mouse_y);
            io.MousePos = ImVec2((float)mouse_x, (float)mouse_y);
        }
    }
    else
    {
        io.MousePos = ImVec2(-FLT_MAX,-FLT_MAX);
    }

    for (int i = 0; i < 3; i++)
    {
        // If a mouse press event came, always pass it as "mouse held this frame", so we don't miss click-release events that are shorter than 1 frame.
        io.MouseDown[i] = g_MouseJustPressed[i] || glfwGetMouseButton(g_Window, i) != 0;
        g_MouseJustPressed[i] = false;
    }

    // Update OS/hardware mouse cursor if imgui isn't drawing a software cursor
    if ((io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange) == 0 && glfwGetInputMode(g_Window, GLFW_CURSOR) != GLFW_CURSOR_DISABLED)
    {
        ImGuiMouseCursor cursor = ImGui::GetMouseCursor();
        if (io.MouseDrawCursor || cursor == ImGuiMouseCursor_None)
        {
            glfwSetInputMode(g_Window, GLFW_CURSOR, GLFW_CURSOR_HIDDEN);
        }
        else
        {
            glfwSetCursor(g_Window, g_MouseCursors[cursor] ? g_MouseCursors[cursor] : g_MouseCursors[ImGuiMouseCursor_Arrow]);
            glfwSetInputMode(g_Window, GLFW_CURSOR, GLFW_CURSOR_NORMAL);
        }
    }

    // Gamepad navigation mapping [BETA]
    memset(io.NavInputs, 0, sizeof(io.NavInputs));
    if (io.ConfigFlags & ImGuiConfigFlags_NavEnableGamepad)
    {
        // Update gamepad inputs
        #define MAP_BUTTON(NAV_NO, BUTTON_NO)       { if (buttons_count > BUTTON_NO && buttons[BUTTON_NO] == GLFW_PRESS) io.NavInputs[NAV_NO] = 1.0f; }
        #define MAP_ANALOG(NAV_NO, AXIS_NO, V0, V1) { float v = (axes_count > AXIS_NO) ? axes[AXIS_NO] : V0; v = (v - V0) / (V1 - V0); if (v > 1.0f) v = 1.0f; if (io.NavInputs[NAV_NO] < v) io.NavInputs[NAV_NO] = v; }
        int axes_count = 0, buttons_count = 0;
        const float* axes = glfwGetJoystickAxes(GLFW_JOYSTICK_1, &axes_count);
        const unsigned char* buttons = glfwGetJoystickButtons(GLFW_JOYSTICK_1, &buttons_count);
        MAP_BUTTON(ImGuiNavInput_Activate,   0);     // Cross / A
        MAP_BUTTON(ImGuiNavInput_Cancel,     1);     // Circle / B
        MAP_BUTTON(ImGuiNavInput_Menu,       2);     // Square / X
        MAP_BUTTON(ImGuiNavInput_Input,      3);     // Triangle / Y
        MAP_BUTTON(ImGuiNavInput_DpadLeft,   13);    // D-Pad Left
        MAP_BUTTON(ImGuiNavInput_DpadRight,  11);    // D-Pad Right
        MAP_BUTTON(ImGuiNavInput_DpadUp,     10);    // D-Pad Up
        MAP_BUTTON(ImGuiNavInput_DpadDown,   12);    // D-Pad Down
        MAP_BUTTON(ImGuiNavInput_FocusPrev,  4);     // L1 / LB
        MAP_BUTTON(ImGuiNavInput_FocusNext,  5);     // R1 / RB
        MAP_BUTTON(ImGuiNavInput_TweakSlow,  4);     // L1 / LB
        MAP_BUTTON(ImGuiNavInput_TweakFast,  5);     // R1 / RB
        MAP_ANALOG(ImGuiNavInput_LStickLeft, 0,  -0.3f,  -0.9f);
        MAP_ANALOG(ImGuiNavInput_LStickRight,0,  +0.3f,  +0.9f);
        MAP_ANALOG(ImGuiNavInput_LStickUp,   1,  +0.3f,  +0.9f);
        MAP_ANALOG(ImGuiNavInput_LStickDown, 1,  -0.3f,  -0.9f);
        #undef MAP_BUTTON
        #undef MAP_ANALOG
        if (axes_count > 0 && buttons_count > 0)
            io.BackendFlags |= ImGuiBackendFlags_HasGamepad;
        else
            io.BackendFlags &= ~ImGuiBackendFlags_HasGamepad;
    }

    // Start the frame. This call will update the io.WantCaptureMouse, io.WantCaptureKeyboard flag that you can use to dispatch inputs (or not) to your application.
    ImGui::NewFrame();
}

redpajama_set_name: RedPajamaGithub


Recently, I wrote about how to breed success with positive thinking, and there was a section that readers wanted me to follow up on regarding how to make a good deal.
Here are my keys to making a deal when entering into any type of negotiating.
Listen not only to what the other party is saying, but look at their physical gestures as well. Often, you can find out a lot about how the other party stands on a deal by the way they communicate.
Never go into a deal with only one option. Having another way to get your current deal done or a similar deal is always best before you start negotiating.
Also, don't be afraid to walk away.
I don't focus too much on fancy market studies and I would rather go off of our own instincts when working on a new development.
If you make sure that you have something that the other party needs, you will be most successful in getting a deal done that benefits you the most.
When going through the zoning approval process to accommodate the municipalities, extra items are sometimes added to meet the city's needs. For example, in our Powell Grand development we were able to put together tax increment financing to help pay for regional road improvements. This TIF also allowed the City of Powell to get a bike path extension and $1 million toward its Seldom Seen Park across from our development.
In our Mason Grand development, we were able to put together a beautification district assessment for all developers in our corridor to help enhance the common streetscapes and landscaping.
These were both compromises that led us to zoning approvals, and both cities were able to gain positive mixed-use developments.
There is nothing more important than your reputation. It is important that you keep your word and follow through with the deal you have made, as it will help create future business for your organization.
I don't feel that I work a day in my life because I enjoy what I do. I even like the toughest and most complicated deals because they are the most rewarding when completed.
There isn't a better feeling than creating a community where people are happy where they live.