text:
Q: Processing camera frustum() and perspective() rotations How can I make a camera that I can move around and rotate around its own axis in processing 2+?
I have a camera that I can move around in the world space and have some kind of rotation:
frustum(-10,10,-10,10,10,2000);
translate(camX,camY,camZ);//I move around by adding to these values when a button is pressed
rotate(angleX,1,0,0);//same here...
rotate(angleY,0,1,0);
rotate(angleZ,0,0,1);

Bu the problem with this is that the rotation is centered in the scene, meaning that I get very strange rotations when moving further away from the scene's center coordinates. Why does that happen when I have translated before rotating?

A: Thanks to Nicolás Carlo and his suggestion to watch This Youtube playlist made by Jorge Rodriguez I was able to fix what I almost made right the first time.
All I had to do was really just to do some simple trigonometric calculations to get the forward-vector from the angles I got, and then just add the camera position to that for the centerX,centerY,centerZ values in camera();
Ex. where camPos is the current position 3D-Vector and vecForward is the calculated 3D-forward vector that I needed.
vecForward.x = cos(yaw)*cos(pitch);
vecForward.y = sin(pitch);
vecForward.z = sin(yaw)*cos(pitch);

camera(camPos.x,camPos.y,camPos.z, camPos.x+vecForward.x,camPos.y+vecForward.y,camPos.z+vecForward.z, 0,1,0);

If some of you do not know, Pitch is the up-down angle and Yaw is left-right angle of the camera.
And as a last note here,I highly suggest watching Rodriguez "Math for game developers" that Carlo suggested since every video explains at least one of the most important/oftenly used mathematical solutions at a time to different problems and then giving an example in the end.


Pourable finishing filler that is Very smooth and easy to spread.
Excellent adhesion to most substrates including galvanised steel.
Can be sanded, painted and primed in 15-20 minutes.
New bottle packaging enables super quick, easy and neat dispensing.


Welcome to the Graduate Student Programme Advising home page!
Please be advised that you must register for OOL6001 - The Graduate Introductory Course in your first Semester. Be reminded that this is a mandatory course which must be passed, for successful completion of your programme.


text:
Vs > Farmington, Mo
Puerto Princesa, Palawan vs Farmington, Mo Climate & Distance Between
Puerto Princesa, Palawan vs Jos, Nigeria
Puerto Princesa, Palawan vs Antalaha/ Antsirabat, Madagascar
Puerto Princesa, Palawan vs Watertown, Ny, Usa
Puerto Princesa, Palawan vs Ilirnej, Russia
Farmington, Mo vs Itaberaba, Brazil
Farmington, Mo vs Jabulsaraj, Afghanistan
Farmington, Mo vs Caceres, Brazil
Farmington, Mo vs Visakhapatnam, India
Alghero vs Bergen
Midland, Tx vs Erdenemandal
Klagenfurt vs Vestervig
North Loup, Ne vs Mangalore, Karnataka
The distance between Puerto Princesa, Palawan, Philippines and Farmington, Mo, Usa is approximately 13,924 km or 8,653 mi.
To reach Puerto Princesa, Palawan in this distance one would set out from Farmington, Mo bearing 324.6° or NW and follow the great circles arc to approach Puerto Princesa, Palawan bearing 207.6° or SSW .
Puerto Princesa, Palawan has a tropical wet and dry/ savanna climate with dry winters (Aw) whereas Farmington, Mo has a humid subtropical climate (Cfa).
Puerto Princesa, Palawan is in or near the tropical moist forest biome whereas Farmington, Mo is in or near the warm temperate moist forest biome.
The mean temperature is 15.1 °C (27.2°F) warmer.
Total annual precipitation averages 565.5 mm (22.3 in) more which is equivalent to 565.5 l/m² (13.88 US gal/ft²) or 5,655,000 l/ha (604,557 US gal/ac) more. About 1 1/2 as much.
The altitude of the sun at midday is overall 21.6° higher in Puerto Princesa, Palawan than in Farmington, Mo.
The table shows values for Puerto Princesa, Palawan relative to Farmington, Mo. You can also view this comparison the other way around from the perspective of Farmington, Mo vs Puerto Princesa, Palawan.
Average Max Temperature °C ( °F) +27 (+48) +25 (+45) +19 (+34) +13 (+24) +9 (+16) +3 (+6) +1 (+1) +2 (+3) +6 (+10) +11 (+19) +18 (+32) +25 (+45) +13 (+24)
Average Temperature °C ( °F) +29 (+51) +26 (+47) +21 (+38) +16 (+29) +12 (+21) +5 (+9) +2 (+4) +4 (+6) +8 (+14) +14 (+25) +20 (+36) +26 (+47) +15 (+27)
Average Min Temperature °C ( °F) +28 (+51) +26 (+47) +20 (+37) +16 (+29) +13 (+23) +8 (+14) +5 (+10) +6 (+10) +10 (+17) +16 (+29) +21 (+38) +27 (+48) +16 (+29)
Average Precipitation mm (in) -12 (0) -32 (-1) -47 (-2) -56 (-2) +34 (+1) +84 (+3) +87 (+3) +100 (+4) +132 (+5) +140 (+6) +107 (+4) +27 (+1) +566 (+22)
Sun altitude at solar noon on the 21st day (°) +28 +27.9 +27.9 +23.9 +7.3 +0.9 +6.9 +23.5 +28.3 +28.3 +28.3 +28.2 +21.6
http://www.puerto-princesa.climatemps.com/vs/farmington-mo.php
Puerto Princesa, Palawan vs Torino, Italy
Puerto Princesa, Palawan vs Elmira, Ny, Usa
Puerto Princesa, Palawan vs Padang, Sumatra, Indonesia
Puerto Princesa, Palawan vs Aberystwyth, Wales, Uk
Farmington, Mo vs Espinosa, Brazil
Farmington, Mo vs Ottawa, Il, Usa
Farmington, Mo vs Dourados, Brazil
Farmington, Mo vs Abu Hamed, Sudan
Madison, Ne vs Milledgeville, Ga
Kenton, Oh vs Greenfield, In
Paraparaumu vs Knoxville, Tn
Colorado Springs, Co vs Puerto Plata
Puerto Princesa, Palawan vs Farmington, Mo Discussion
Climate Guides for Locations near Farmington, Mo
Bowling Green E, Mo, Usa - 141.2 kms (87.7 miles) NW
Warrenton, Mo, Usa - 141.2 kms (87.7 miles) NW
St. Louis/ Lambert, Mo, Usa - 89.3 kms (55.5 miles) NNW
Saint Louis, Missouri, Usa - 89.8 kms (55.8 miles) NNW
Pana, Il, Usa - 173.9 kms (108 miles) NNE
Carlinville, Il, Usa - 142.7 kms (88.7 miles) N
White Halle, Il, Usa - 111.2 kms (69.1 miles) N
Windsor, Il, Usa - 141.2 kms (87.7 miles) NE
Hillsboro, Il, Usa - 141.2 kms (87.7 miles) NE
Sparta, Il, Usa - 31.1 kms (19.3 miles) ENE
Mcleansboro, Il, Usa - 128.7 kms (79.9 miles) E
Mt Vernon, Il, Usa - 87.6 kms (54.4 miles) E
Duquoin, Il, Usa - 87.6 kms (54.4 miles) E
Princeton, In, Usa - 175.2 kms (108.9 miles) E
Harrisburg, Il, Usa - 87.6 kms (54.4 miles) E
Marble Hill, Mo, Usa - 77.2 kms (48 miles) S
Cairo-Illinois, Usa - 133.3 kms (82.8 miles) SSE

redpajama_set_name: RedPajamaCommonCrawl


Cryptocurrency exchange Coinbase is looking to circumvent regulatory hurdles and add new coins to its portfolio with the acquisition of Paradex, a service which allows users to trade cryptocurrencies without relying on a trusted third party.
Paradex, which launched in beta in January 2018, is a so-called relayer built on top of the 0x platform. This means it provides users with a way to trade ERC20 tokens — a large ecosystem of cryptocurrencies built on top of Ethereum — directly from their digital wallets.
This is an important move for Coinbase, which is the top U.S. cryptocurrency exchange with more than 20 million customer accounts and $20 billion in crypto-assets. The exchange currently lists only four cryptocurrencies: Bitcoin, Ethereum, Litecoin and Bitcoin Cash. Despite customer demand for more (there are thousands of cryptocurrencies out there, 23 of them with a market cap of over $1 billion), Coinbase has been wary of adding new coins due to regulatory pressure from the SEC, which (possibly) sees many of these as unregulated and unregistered securities.
According to Coinbase CEO Asiff Hirji, who spoke on CNBC's "Fast Money" Wednesday, the company sees Paradex as a "bulletin board" and not an exchange, which should make it an acceptable addition to Coinbase's portfolio in the eyes of the regulators.
But make no mistake, Paradex will effectively allow Coinbase users to trade in hundreds of new cryptocurrencies, which is a huge step for the company. We'll have to wait until launch to see how exactly Coinbase will integrate Paradex's current product into its service.
Paradex will be integrated into Coinbase Pro, which is a rebrand of GDAX, the company's trading platform aimed at advanced users. But there's a caveat: It will initially only be available to international accounts and not U.S. users. The company plans to start offering the product to U.S. users "as soon as we can," according to Hirji.
Besides Paradex, Coinbase Pro will also offer a simplified user experience, improved charts and a new portfolio view called "My Wallets," which will give users a consolidated look into their orders and balances.
Paradex is temporarily unavailable following the acquisition.
"In our next steps together, we'll continue to build out the existing Paradex roadmap and continue to explore the world of decentralization and the amazing opportunities at hand," Paradex wrote in a notice on its site.
Coinbase's annoucement come days after the company launched four new major products aimed at institutional investors. In March, Coinbase announced it would launch an index fund for cryptocurrencies.
Disclosure: The author of this text owns, or has recently owned, a number of cryptocurrencies, including BTC, ETH and ZRX.
What's So Different About Cryptocurrency Exchanges?


text:
Browsing subject area: World history -- Juvenile literature (Include extended shelves)
World history -- Juvenile literature
History -- Juvenile literature
Narrower terms:
History, Ancient -- Juvenile literature
Middle Ages -- Juvenile literature
History, Juvenile
Filed under: World history -- Juvenile literature
The Story of Mankind (New York: Boni and Liveright, 1921), by Hendrik Willem Van Loon
page images at HathiTrust
More Seeds of Knowledge: or, Another Peep at Charles , by Miss Corner (Gutenberg text and illustrated HTML)
Parley's Common School History of the World: A Pictorial History of the World, Ancient and Modern, for the Use of Schools (new edition; Philadelphia: E. H. Butler and Co., 1870), by Samuel G. Goodrich (page images at HathiTrust)
Peter Parley's Universal History on the Basis of Geography (2 volumes in 1; New York: M. H. Newman and Co.; et al., 1850), by Samuel G. Goodrich
multiple formats at Google
Stories From History (Philadelphia: Porter and Coates, ca. 1876), by Agnes Strickland (multiple formats at archive.org)
The Story of Mankind , by Hendrik Willem Van Loon (Gutenberg text; 770K)
The Story of the World: A Simple History for Boys And Girls (New York: G. P. Putnam's Sons; London, T. C. and E. C. Jack, ca. 1913), by Elizabeth O'Neill
Filed under: History, Ancient -- Juvenile literature
Ancient Man: The Beginning of Civilizations (1922), by Hendrik Willem Van Loon (Gutenberg text and illustrated HTML)
The Book of the Ancient World for Younger Readers: An Account of Our Common Heritage From the Dawn of Civilization to the Coming of the Greeks (New York and London: G. P. Putnam's sons, 1923), by Dorothy Mills (page images at HathiTrust)
Filed under: Knights and knighthood -- Juvenile literature
King Arthur's Knights: The Tales Retold for Boys and Girls , by Henry Gilbert, illust. by Walter Crane
Gutenberg text, illustrated HTML, and page images
illustrated HTML at Celtic Twilight
Filed under: Crusades -- Juvenile literature
Stories From the Crusades , by Janet Harvey Kelman, illust. by Lowes Dalbiac Luard (illustrated HTML with commentary at Gateway to the Classics)
Filed under: Crusades -- Third, 1189-1192 -- Juvenile literature
Our Little Crusader Cousin of Long Ago; Being The Story of Hugo, Page to King Richard of England, in the Third Crusade (Boston: The Page Company, c1921), by Evaleen Stein, illust. by Charles E. Meister (illustrated HTML and page images at Indiana)
Filed under: World history
Unmaking the West: "What-If?" Scenarios That Rewrite World History (Ann Arbor: University of Michigan Press, c2006), ed. by Philip E. Tetlock, Richard Ned Lebow, and Geoffrey Parker (page images at HathiTrust)
The Scientific Revolution Revisited (Cambridge, UK: Open Book Publishers, c2015), by Mikuláš Teich (multiple formats with commentary at Open Book Publishers)
History of the World (9 volumes; ca.1923), by John Clark Ridpath (illustrated HTML with commentary at Ohio State)
A Short History of the World (New York: J. J. Little and Ives Co., 1922), by H. G. Wells (Gutenberg text and illustrated HTML)
A Short History of the World (New York: Macmillan, 1922), by H. G. Wells
illustrated HTML at Bartleby
The Outline of History, Being a Plain History of Life and Mankind (New York: Macmillan, 1921), by H. G. Wells, illust. by J. F. Horrabin (multiple formats at archive.org)
The American Encyclopedia of History, Biography and Travel (Columbus, OH: J. and H. Miller, 1856), by Thomas H. Prescott
The American Encyclopedia of History, Biography and Travel (St. Louis: J. and H. Miller, 1856), by Thomas H. Prescott (multiple formats at archive.org)
The American Encyclopedia of History, Biography and Travel (Columbus OH: J. and H. Miller, 1857), by Thomas H. Prescott
A General History for Colleges and High Schools (ca.1889), by P. V. N. Myers (Gutenberg text)
A General History for Colleges and High Schools (Boston: Ginn and Co., 1889), by P. V. N. Myers
General History for Colleges and High Schools (revised edition; Boston et al.: Ginn and Co., c1906), by P. V. N. Myers
General History of Western Nations From 5000 B.C. to 1900 A.D., I: Antiquity (the only 2 volumes published; London, Macmillan and Co., 1908), by Emil Reich
Volume I: multiple formats at archive.org
Volume II: multiple formats at archive.org
Landmarks of History (3 volumes; London: J. and C. Mozley et al., 1852-1857), by Charlotte M. Yonge
Volume I (Ancient history): multiple formats at Google
Volume II (Middle ages): multiple formats at Google
Volume III (Modern history): multiple formats at Google
Lardner's Outlines of Universal History: Embracing a Concise History of the World, From the Earliest Period to the Present Time (originally written by Keightley for Lardner's Cabinet Cyclopaedia; first American edition; Philadelphia: Hogan and Thompson, 1835), by Thomas Keightley, ed. by John Frost, contrib. by Dionysius Lardner, illust. by Ezra Atherton and Charles N. Parmelee
Lardner's Outlines of Universal History: Embracing a Concise History of the World, From the Earliest Period to the Present Time (originally written by Keightley for Lardner's Cabinet Cyclopaedia; second American edition; Philadelphia: Hogan and Thompson, 1843), by Thomas Keightley, contrib. by Dionysius Lardner, illust. by Ezra Atherton and Charles N. Parmelee (page images at HathiTrust)
The Outline of History: Being a Plain History of Life and Mankind (Garden City, NY: Garden City Publishing Co., c1920), by H. G. Wells, contrib. by Ernest Barker, Harry Johnston, E. Ray Lankester, and Gilbert Murray, illust. by J. F. Horrabin
illustrated HTML at Ibiblio
The Outline of History: Being a Plain History of Life and Mankind (2 volumes in 1; Garden City, NY: Macmillan, 1920), by H. G. Wells, contrib. by Ernest Barker, Harry Johnston, E. Ray Lankester, and Gilbert Murray, illust. by J. F. Horrabin (Gutenberg text and illustrated HTML)
Outlines of Universal History, Designed as a Text-Book and for Private Reading (New York and Chicago: Ivison, Blakeman, Taylor, and Co., c1885), by George Park Fisher
Outlines of Universal History, Designed as a Text-Book and for Private Reading (revised edition, 1904), by George Park Fisher (Gutenberg text)
A Pictorial History of the World's Great Nations, from the Earliest Dates to the Present Time (2 volumes; New York: Selmar Hess, c1882), by Charlotte M. Yonge and John Andrew Doyle
Retrospection: or, A Review of the Most Striking and Important Events, Characters, Situations, and Their Consequences, Which the Last Eighteen Hundred Years Have Presented to the View of Mankind (2 volumes in 1; London: Printed for J. Stockdale, 1801), by Hester Lynch Piozzi (multiple formats at archive.org)
The Valet's Tragedy, and Other Studies , by Andrew Lang (Gutenberg text)
The World Displayed in its History and Geography, Embracing a History of the World from the Creation to the Present Day (2 volumes in 1; New York: W. W. Reed and Co., 1832), by Royal Robbins (page images at HathiTrust)
The World's Story: A History of the World in Story, Song and Art (15 volumes; Boston and New York: Houghton Mifflin Co., 1914-1918), ed. by Eva March Tappan, contrib. by Carl Ploetz, William H. Tillinghast, and Horatio W. Dresser (page images at HathiTrust)
The Scope of History: Studies in the Historiography of Alfonso el Sabio (Ann Arbor: University of Michigan Press, c1996), by Charles F. Fraker (page images at HathiTrust)
Chronicles Selected From the Originals of Cartaphilus, the Wandering Jew: Embracing a Period of Nearly XIX Centuries (3 volumes; London: T. Bosworth, 1853-1854), by David Hoffman (page images at HathiTrust)
Man the Measure: A New Approach to History (New York: Pantheon Books Inc., c1943), by Erich Kahler (page images at HathiTrust)
Filed under: World history -- Congresses
Connected Worlds: History in Transnational Perspective (c2006), ed. by Ann Curthoys and Marilyn Lake (multiple formats with commentary at ANU E Press)
Filed under: World history -- Early works to 1800
Essai sur les Moeurs, et l'Esprit des Nations, et sur les Principaux Faits de l'Histoire, Depuis Charlemagne Jusqu'à Louis XIII (4 volumes in French, from an edition of Voltaire's works; 1775), by Voltaire
Book 1: multiple formats at archive.org
Essai sur l'Histoire Générale et sur les Moeurs et l'Esprit des Nations, Depuis Charlemagne Jusqu'à Nos Jours (10 volumes in French; 1757), by Voltaire (page images at HathiTrust)
Polycronicon (very early English printed edition; 1495), by Ranulf Higden, trans. by John Trevisa (multiple formats at archive.org)
El-Mas'udi's Historical Encyclopaedia, Entitled "Meadows of Gold and Mines of Gems" (only 1 volume published; London: Printed for the Oriental Translation Fund of Great Britain and Ireland, 1841), by -956? Masʻūdī, trans. by Aloys Sprenger
Radulfi Nigri Chronica: The Chronicles of Ralph Niger (in Latin, with English notes; London: Printed for members of the Caxton Society, 1851), by Radulfus Niger, ed. by Robert Anstruther (multiple formats at Google)
The Syriac Chronicle Known as That of Zachariah of Mitylene , by Zacharias, Bishop of Mytilene, trans. by F. J. Hamilton and E. W. Brooks (HTML at tertullian.org)
Polychronicon Ranulphi Higden, Monachi Cestrensis; Together With the English Translations of John Trevisa and of an Unknown Writer of the Fifteenth Century (9 volumes, in English and Latin; London: Longman et al., 1865-1886), by Ranulf Higden, ed. by Churchill Babington and J. Rawson Lumby, trans. by John Trevisa
Volume 1: multiple formats at archive.org
all volumes: page images at HathiTrust
Chronicon Quod Perfectissimum Inscribitur (14 volumes, in Arabic with Latin title pages; Lugduni Batavorum: E. J. Brill, 1851-1876), by 'Izz al-Dīn Ibn al-Athīr, ed. by Carolus Johannes Tornberg (page images at HathiTrust)
Filed under: World history -- Historiography
On History: Introduction to World History (1831); Opening Address at the Faculty of Letters, 9 January 1834; Preface to History of France (1869) (Cambridge, UK: Open Book Publishers, c2013), by Jules Michelet, ed. by Lionel Gossman, trans. by Flora Kimmich and Edward K. Kaplan (PDF and HTML with commentary at openbookpublishers.com)
Filed under: World history -- Sources
Select Documents Illustrating Mediaeval and Modern History (London: P.S. King and Son, 1905), by Emil Reich (multiple formats at archive.org)


text:
Energy forum March 5
The future of renewable energy in Minnesota will be discussed by four professionals in the field March 5 at Central Lakes College in Brainerd. The free event starts at 7 p.m. in Chalberg Theater and is presented by the Gordon Rosenmeier Center for State and Local Government. Presenters are former state senator Ellen Anderson (shown), now senior adviser to Gov. Mark Dayton on energy and environment; Jason Edens, director of the Rural Renewable Energy Alliance (RREAL) in Pine River; Troy Goodnough, sustainability director at the University of Minnesota-Morris; and Craig Fink, a principal owner of Minnesota-based Denali Energy.
Rosenmeier Board Member Laura Raedeke, event coordinator, said the main idea of the forum is to follow up on the implementation of the state of Minnesota's energy policy that was formulated five years ago. The policy states that by the year 2025 one quarter of the state's energy is to come from renewable sources.
"The forum will explore what is happening at both the local and state levels in support of this energy standard," Raedeke said. "In addition to renewable energy being better for the health of humans and the planet, all indicators suggest that many economic advantages, such as good‑paying job opportunities, accompany the move to renewable, clean energy. We hope to get a large audience for this important and timely forum."
Anderson, who works at the Minnesota Department of Agriculture, assists the Commissioners of Agriculture, the Pollution Control Agency (PCA), Department of Natural Resources (DNR) and Commerce on energy and environmental issues. She chairs the Minnesota Public Utilities Commission.
Anderson served in the Minnesota Senate from 1993–2011.
Her signature legislation includes many energy and consumer protection laws, including the Renewable Energy Standard and the Community Based Energy Development (C-BED) laws; raising the minimum wage; co-authorship of the Clean Water, Land, and Legacy Amendment; the Mortgage Foreclosure Prevention Act; and the first law in the nation, now in federal law, protecting nursing mothers in the workplace.
She was an adjunct faculty member at Metropolitan State University and the University of Minnesota, where she taught courses on law, energy, and sustainability. She has served in numerous leadership and community volunteer positions and received dozens of awards for her leadership in energy, environment, and economic and social justice issues.
Edens, founding Director of the RREAL, said the alliance is dedicated to making solar energy accessible to people of all income levels. Since 2000 RREAL has been delivering solar heat and solar electricity to the residential and commercial market. Unique among the nonprofit community, RREAL is a solar thermal OEM and his pioneered the delivery of solar heat to low‑income families on energy assistance as a lasting solution to fuel poverty.
Edens has a history of environmental and social justice advocacy. He holds a Minnesota building contractor license and is a NABCEP-certified solar heating installer. His brief presentation is titled "Making Solar Accessible to Our Communities."
Goodnough in 2006 became the first sustainability coordinator hired in the University of Minnesota system. He directs the Office of Sustainability on the Morris campus and works with students, faculty and staff to develop and implement sustainability initiatives.
His work has included creating new educational programs, outreach initiatives, and renewable energy projects. Before becoming employed in higher education, Goodnough worked for semiconductor startup companies growing lasers for telecommunications.
Goodnough's presentation reviews how U of M-Morris became a renewable energy destination using wind turbines, biomass gasification, solar thermal, solar PV, and energy conservation to meet its energy needs. His illustrated talk will describe renewable energy systems, costs and savings connected to these projects, and how Morris is working to produce more energy than it consumes.
Fink has 20 years of executive and management experience in the real estate and energy industries. He has been with Denali Energy since July 2006. His experience includes an extensive background in real estate procurement, development and government affairs.
Fink is experienced in renewable energy project development, including the 600 MW Hartland Wind Farm in North Dakota, and in creating joint venture alliances with transmission development companies. His broad experience also includes international project management, financial structuring, investment management, creative capital solutions and marketing.
Fink has spoken at numerous wind-industry events and was recognized in 2009 as one of the "Top 40 Minnesotans on the Move" by Finance & Commerce.
Denali Energy works with transmission companies, land owners, and governmental units such as those in North Dakota to support a network of high-voltage lines to move megawatts of renewable energy power created at wind farms. Supporters in that state cite the potential for wind energy to be the biggest cash crop available – bigger than grain or coal.
The wind farm potential in North Dakota is described as the equivalent of (power from) six nuclear plants through a transmission super highway to the East.
In 2012 the U.S. wind energy industry had its strongest year ever, the American Wind Energy Association reports, installing a record 13,124 megawatts (MW) of electric generating capacity, leveraging $25 billion in private investment, and achieving over 60,000 MW of cumulative wind capacity.
Minnesota is among the nation's leaders in wind energy production, ranking sixth. In the past 25 years, over 60 wind farms have sprouted up across the state with a total wind energy capacity of over 2,717 MW.
Over 10 percent of Minnesota's electricity is produced by a wind resource, powering close to 770,000 homes.
With no emission and virtually no water being used to produce electricity from a wind resource, Minnesota avoids producing roughly 5.4 million metric tons of carbon dioxide annually.
U.S. Department of Energy has projected that wind energy can supply 20 percent of America's electricity by 2030.
Ray Gildow, host of Lakeland Currents on regional public television, will be the moderator of the forum.
For information about the forum, contact Laura Raedeke, chair of the organizing committee, at (218) 963‑3877.
Labels: Announcements, Events, Partnerships, People, Projects, Staff Stuff
CLC Students Recognized for Excellence in Advertising
Winter concert
CLC president in DC
Tour TV studio
Outstanding educators
Appointed by Governor
March Cultural Thursday
CLC on TV
Children's Dental Health Month
Ag & Energy Expo


text:
Is Jump Force Cross Platform in 2022? [PC, PS4, Nintendo, Xbox]
Jump Force is an upcoming video game that is set to be released in February of 2020. The game will be available on PC, Xbox One, and PS5 platforms. However, there has been some speculation about whether or not the game will be cross-platform. In this article, we will explore the possibility of Jump Force being cross-platform and what that would mean for gamers.
One of the biggest benefits of cross-platform gaming is that it allows gamers to play with their friends regardless of what platform they are using. For example, if someone is playing on a PC and their friend is playing on a PS Vita, the two can still play together in the same game. This greatly expands the player base for each game and can make for a more enjoyable gaming experience.
However, there are some potential drawbacks to cross-platform gaming as well. One of the biggest issues is that it can be difficult to develop games that are compatible with multiple platforms. This can lead to compatibility issues and create a less than optimal gaming experience for players. Another issue is that different platforms can offer different features, which can create a conflict among players who are using different platforms.
Read More: Is Farming Simulator 19 Cross-Platform in 2022?
Jump Force Game:
Is Jump Force Cross-Platform in 2022?
Is Jump Force Cross-Platform PC and PS4?
Is Jump Force Cross-Platform PC and Xbox One?
Is Jump Force Cross-Platform PC and Nintendo Switch?
Is Jump Force Cross-Platform PS4/PS5 and Xbox One?
Is Jump Force Cross-Platform PS4 and PS5?
What does cross-platform mean?
What are the benefits of cross-platform gaming?
What does cross-progression mean?
Is Jump Force cross-progression?
Jump Force is an upcoming video game being developed by Spike Chunsoft and published by Bandai Namco. It is set to be released in February of 2019 for PlayStation®, Xbox One, and Microsoft Windows. The premise of the game is that various characters from manga series created by Weekly Shōnen Jump come together to fight against a common enemy.
The game is being billed as the "ultimate anime crossover" and will feature characters from popular series such as Dragon Ball, One Piece, Naruto, and Death Note. The announcement trailer for the game has been viewed over eighteen million times on YouTube since its release in June of 2018.
In this game, you must defeat your opponent by knocking them out of bounds or depleting their HP bar completely. There are, however, certain characters with distinct gameplay systems. Goku, for example, may change into many forms throughout the story.
Similar one: Is Forza Horizon 4 Cross-Platform in 2022?
No, Jump Force is not a cross platform game. It will only be released for PlayStation®,, Xbox One, and Microsoft Windows. Because Crossplay is not supported, you must have the same version of the game in order for everyone to enjoy together.
No, Jump Force isn't cross-platform between PC and PS4. This implies that if you're playing on a PC, you won't be able to interact with friends who play on a PS4. Players will also not be able to access their progress from either platform.
Unfortunately, this is a terrible news for Jump Force fans since they will no longer be able to play with their friends on different platforms. It's also a bit unusual that Jump Force doesn't have cross-platform support, however we may only hope Bandai Namco Entertainment will add it in the future!
The answer is "NO" (as if you didn't know). You cannot play Jump Force on the Windows PC with friends who are playing it on Xbox One. Because Bandai Namco Entertainment has not implemented cross-platform support for this game, you will need to buy two copies if you wish your friends to be able to join in as well
No, Jump Force is not cross-platform between the Windows PC and Nintendo Switch. This implies that you won't be able to play together if you have a Windows PC but no Nintendo Switch or if your friends only have a single system.
Continue Reading: Is PGA Tour 2K21 Cross-Platform in 2022?
This is a common question, and the answer is "NO." Cross-platform play isn't available between Xbox One and PlayStation 4/5. This means you won't be able to play together with your friends if they have a different console than yours, which is a bummer for fans of this game!
Yes, Switch and PC users will be able to play together on the PS5. This means that you can play together with your friend who is using a PS5 if you're using a PS4.
Cross-platform is a term used to describe video games that can be played on more than one platform. This means that the game can be played on different devices, such as a PC and a console. This implies that if you're on Xbox One but your friend is on PS5, you may still play together.
Also Read: Is Elite Dangerous Cross-Platform in 2022?
Cross-platform gaming offers a number of benefits to gamers. These include:
The ability to play with friends regardless of what platform they are on.
Easier matchmaking, as you can find players from all platforms in the same game.
No need for separate purchases – if you own one copy of the game, you can play it on any platform.
It's clear that there are a number of advantages to cross-platform gaming, and with the release of Jump Force in 2022, it looks like this will be an option for players. Stay tuned for more information
Cross-progression is the ability to access your progress and achievements across different platforms. It allows you to start a game on one platform and continue playing it on another platform. This means that you can play Jump Force on PC, PSN, Xbox Live or any other supported platforms. You will be able to use your same account regardless of the platform you are playing on. This also includes your in-game progress, purchases and unlocks.
Jump Force is confirmed to support cross-progression when it launches in 2022. This means that you can start playing the game on one platform and continue playing it on another platform without any issues. You will be able to use the same account and progress on any platform that Jump Force is supported on. Stay tuned for more information!
Unfortunately, this is where things begin to go downhill. "NO" is the response to the previous question; there is no cross-progression for your progress in Jump Force. Nothing will transfer over if you play on Xbox One and then play it with friends who have PS5 or Nintendo Switch later – not even your progress!
Read More: Is World War Z Cross-Platform in 2022?
Cross-platform gaming is becoming increasingly popular in the gaming industry, which is why it's such a shame that Jump Force does not support cross-platform play. It would be fantastic if Bandai Namco Entertainment added this capability to their game as soon as possible! We hope you found our blog post on "Is Jump Force Cross-Platform in 2022?" informative. Be sure to check back soon for more gaming news and updates!
The Vast World of Hollow Knight | All Maps List [2022]
Where to Find Mandrake Cordial in Witcher 3 Game
Is FIFA 21 Cross-Platform in 2022? (PC,PS4,PS5, xBox)
It is hard to predict the future, but there are some predictions that are easier than others. One prediction which …
Is Assetto Corsa Cross Platform in 2022? [Xbox, PC,& Nintendo]
Assetto Corsa is a popular PC racing game that boasts a high degree of realism. The title has reportedly sold …
Is Warframe Cross-Platform in 2022? [PC, PS4, Xbox One, PS5]
Warframe is a popular online video game that is available on PC, PS4, and Xbox One. The game was originally …
Is The Hunter Cross-Platform in 2022? (IPC, PS4, and Xbox)
It has long been rumored that the Hunter Call of the Wild will be coming to cross-platform in 2022. This …
Is Dragon Ball Xenoverse 2 Cross-Platform in 2022? (PS5, PS4, PC Xbox)
Dragon Ball Xenoverse 2 is just around the corner, and fans are eager to find out if this game will …


Because personas focus on creating a story made up of a customer's attributes, instead of a story that explains a purchase, personas leave the brain in a unsatisfied state, argues Alan Klement. To fix this, in just a split second, the brain decides to make up it's own story.
Personas, he says, have destructive effects on an organization. As each team member reads a persona, they will subconsciously fill it with their own assumptions which differ from everyone else.
The way to mitigate these unintended effects is to replace Personas with models that enable cohesive stories. These models are called Characters.


text:
Marincello was een voorgestelde maar nooit gebouwde voorstad ten noorden van San Francisco, in de Marin Headlands in Marin County (Californië). De naam was een samentrekking van 'Marin' en 'Monticello'.

Geschiedenis
In de jaren 1960 waren er concrete plannen om in de Marin Headlands een geplande voorstad te bouwen waar wel 30.000 mensen konden wonen. De plannen kwamen van vastgoedontwikkelaar Thomas Frouge en werden in november 1965 goedgekeurd door Marin County, ondanks protest van lokale leiders en milieuactivisten.

Aan de ingang van het te ontwikkelen terrein werden grote toegangspoorten gebouwd. Er doken echter snel wettelijke problemen op en in 1967 kwam de bouw stil te liggen, ten dele omdat Gulf Oil, dat het project meefinancierde, er niet meer in geloofde. Er kwamen meer rechtszaken, waarin verschillende fouten in de zonering van Marincello werden blootgelegd. Tegelijkertijd liet de overheid bestuderen of de Headlands deel konden gaan uitmaken van een nationaal park rond de Golden Gate. Nadat Gulf Oil een belangrijke rechtszaak verloor in 1970, verkocht het de gronden aan The Nature Conservancy, dat ze twee jaar later aan de National Park Service overmaakte opdat ze zouden worden opgenomen in de net opgerichte Golden Gate National Recreation Area.

In 1976 werden de poorten van Marincello, het enige architecturale bewijs van het project, afgebroken. Wat de hoofdweg moest worden, bestaat wel nog als een zandweg, gepast Marincello Trail genoemd. Het is een populair wandel- en fietspad dat aangesloten is op een groot netwerk van paden in het natuurgebied.

Externe links
  "Saved by Grit and Grace - Wild Legacy of the Marin Headlands" (BayNature.org)
  Kaart van de Marin Headlands en het Marincello-wandelpad in de Golden Gate NRA

Marin County
Geschiedenis van Californië
Geplande stad
Golden Gate National Recreation Area

redpajama_set_name: RedPajamaWikipedia


text:
Trains from Brussels to Romans—Bourg-de-Péage
Brussels to Romans—Bourg-de-Péage
Take the train from Brussels to Romans—Bourg-de-Péage in 5 hours 13 minutes
If you want to travel from Brussels to Romans—Bourg-de-Péage by train, you've come to the right place.
You can expect the journey from Brussels to Romans—Bourg-de-Péage by train to take around 8 hours 31 minutes. If you want to get there as quickly as possible, it can take as little as 5 hours 13 minutes on the fastest services. You'll usually find around 11 trains per day running on this route, which spans 402 miles (647 km). You'll have to make 1 change along the way on your journey to Romans—Bourg-de-Péage.
Use our Journey Planner at the top of the page to search for cheap ticket prices and we'll show you how much you can save. Tickets from Brussels to Romans—Bourg-de-Péage start from €110.80 when you book in advance.
If you want to know more about the journey, keep reading for timetables, tips on finding cheap tickets and FAQs, including first and last train times. Want to go straight to booking? Start a search with us today!
Brussels to Romans—Bourg-de-Péage by train
It takes an average of 8h 31m to travel from Brussels to Romans—Bourg-de-Péage by train, over a distance of around 402 miles (647 km). There are normally 11 trains per day travelling from Brussels to Romans—Bourg-de-Péage and tickets for this journey start from €110.80 when you book in advance.
Romans—Bourg-de-Péage
Brussels to Romans—Bourg-de-Péage train times
Check out the next trains departing from Brussels to Romans—Bourg-de-Péage for Tuesday 1st February 2022. For the full train timetable/schedule, or to search for a later time or date, click here.
12:13 18:14 6h 1m, 2 changes
Cheap train tickets from Brussels to Romans—Bourg-de-Péage
The price of train tickets from Brussels to Romans—Bourg-de-Péage starts at €110.80 one-way for a Standard Class ticket if you book in advance. Booking on the day is usually more expensive and costs can vary depending on the time of day, route or class.
Most of the train companies across Europe release their tickets around three to six months in advance, many of which can be cheaper the earlier you book. If you know the dates you want to travel, you may be able to find some cheaper train tickets from Brussels to Romans—Bourg-de-Péage by booking early.§
Want to know more about your journey from Brussels to Romans—Bourg-de-Péage? We've compiled some of the most frequently asked questions by our customers to help you plan your journey.
How long does the train from Brussels to Romans—Bourg-de-Péage take?
The average journey time by train between Brussels and Romans—Bourg-de-Péage is 8 hours and 31 minutes, with around 11 trains per day. The journey time may be longer on weekends and holidays, so use our Journey Planner on this page to search for a specific travel date.
What's the fastest journey time between Brussels and Romans—Bourg-de-Péage by train?
The fastest journey time by train from Brussels to Romans—Bourg-de-Péage is 5 hours and 13 minutes.
How much does the train from Brussels to Romans—Bourg-de-Péage cost?
Train ticket prices from Brussels to Romans—Bourg-de-Péage can start from as little as €110.80 when you book in advance. The cost of tickets can vary depending on the time of day, route and class you book and are usually more expensive if you book on the day.
Is there a direct train from Brussels to Romans—Bourg-de-Péage?
No, there are no direct train services from Brussels to Romans—Bourg-de-Péage. Travelling from Brussels to Romans—Bourg-de-Péage by train will require a minimum of 1 change.
What time does the first train from Brussels to Romans—Bourg-de-Péage leave?
The first train from Brussels to Romans—Bourg-de-Péage leaves at 07:02. Times and services may vary during weekends and holidays.
What time does the last train from Brussels to Romans—Bourg-de-Péage leave?
The last train from Brussels to Romans—Bourg-de-Péage leaves at 20:16. Trains that depart in the early morning hours or very late evening may be sleeper services, time and services may also vary during weekends and holidays.
What's the distance between Brussels and Romans—Bourg-de-Péage by train?
Trains travelling from Brussels to Romans—Bourg-de-Péage cover a distance of around 402 miles (647 km) during the journey.
The information provided is calculated based on scheduled train services for Brussels to Romans—Bourg-de-Péage for a typical week day using timetable data for 02/01/2022. On weekends, holidays or other exceptional times, fewer services may be available. The fare range provided has been found by our customers on Trainline on 10/28/2021 for travel on 10/28/2021 and for adult tickets in economy, discount cards and coach journeys excluded.
Trains from Brussels
Trains from Romans—Bourg-de-Péage
Brussels to Bruges (Brugge)
Brussels to Paris
Brussels to Amsterdam-Centraal
Brussels to Antwerp
Brussels to London
Romans—Bourg-de-Péage to Grenoble
Romans—Bourg-de-Péage to Valence Ville
Romans—Bourg-de-Péage to Lyon Part-Dieu
Romans—Bourg-de-Péage to Lyon St-Exupéry TGV
Romans—Bourg-de-Péage to Crest
Fréjus to Montpellier
Aubusson to Auzances
Haute-Picardie TGV to Bellegarde-sur-Valserine
Baden-Baden to Wissembourg
Frankfurt (M) Flughafen Regionalbf to Limbach (b Homburg Saar)


text:
Home Podcast Videos About + Contact Faith Commons
HomePodcastVideosAbout + ContactFaith Commons
Conversations with George Mason about faith and public life
Episode 48: Big Thought CEO Byron Sanders
After growing up in Dallas and getting a private school education, Byron Sanders left his successful career to lead a nonprofit, Big Thought, that mentors kids in a unique way for future success.
He talks about his journey of committing his life to God's purpose in the world through a very intentional personal mission statement.
And he and George talk about the importance of mentoring kids from under-resourced communities so that they have the imaginations to achieve their own purposes in life.
You can listen to the podcast or read the transcript below, or watch the full video here.
George Mason:	What can be done to raise the sights of children of color in Dallas, so that they have an imagination of opportunity? Byron Sanders of Big Thought is going to talk about just that, and the work that they do with their nonprofit on Good God. Stay tuned.
George Mason:	Welcome to Good God, conversations that matter about faith, and public life. I'm George Mason, your host, and I'm pleased to welcome to the program today, Byron Sanders. Byron, we're glad to have you with us.
Byron Sanders:	It's a pleasure to be here.
George Mason:	Thank you. Now, Byron is the President, and CEO of a creative educational enterprise called Big Thought.
Byron Sanders:	That's right.
George Mason:	Big Thought, and it is a big social transformation organization that we're going to get to talking about after a while a little more, but Byron, I think because this is Good God, we like to talk about people's faith journey that got them into this work, and how it informs your work, and how you connect the dots between your own personal spiritual life, and the work you do. So, tell us something about your self identification in terms of your faith.
Byron Sanders:	Absolutely. You know, so I grew up here in Dallas.
George Mason:	Right.
Byron Sanders:	I grew up a church kid too. Most of my life was in southern Dallas, DeSoto, Oak Cliff, a little bit of Pleasant Grove, but it was kind of the southern Dallas life, and my mother is an educator. She was a teacher for the longest time. She just retired after 36 years not too long ago, and she's doing what all retired teachers do which is teach.
George Mason:	Teach, exactly.
Byron Sanders:	But still living her best life, right? So, education kind of just was in the atmosphere, right? It was in the drinking water growing up, but what was interesting was I started off in Dallas Independent School District, loved my school. Adelle Turner gave me a really solid grounding in who I was, my culture, my identity, and I learned to love, you know, my blackness.
Byron Sanders:	I learned to love history about a culture that I really identify with, and then from there, went to the Talented and Gifted Magnet still in Dallas Independent School District over in Spence. So, went from Oak Cliff, to East Dallas, got a different experience there.
Byron Sanders:	Oak Cliff, all black, excuse me, it was an all black school, and then East Dallas, it was a mostly Hispanic school, and then I was in the TAG segment, which was a little bit more diverse, but different environment, met a mentor in my little nerd outlet, which was history day, and history day, Donald Payton told me about this school called Green Hill. So I went, and I visited, loved it, took a tour, there were peacocks walking around. I'm like, 'I want to go to the school of peacocks', right?
Byron Sanders:	So, went up there, and I thought I was hot stuff, and I was going to come in, and be hot stuff, because I'm hot stuff. That's what I do in school. This is what I do. Well, I got baptized in a different set of expectations, and it wasn't that they're using different books, or you know, Algebra is Algebra, is Algebra, right?
Byron Sanders:	But I was not used to the inquiry that students were expected to have. I thought when kids were talking back to the teacher, I thought they were being disrespectful, as opposed to having an actual conversation, right? You know, it was a completely different cultural reference. Exactly, but I got the hang of it after two years, I got the hang of it, but I would never forget though that I would be patently aware that I was getting something really special at this school.
Byron Sanders:	But I happened to be in the right place at the right time, met the right mentor who told me about a school that I'd never heard of, happened to have a mother, and father who were willing to sacrifice. We woke up at five o'clock every morning, so that I could catch the bus in West Dallas at 6:30 at the Boys Club, and then we'd go pick up some more kids in East Dallas, then we'd head up to Addison, and was able to do so with mostly a full ride, and wow, that was a lot of dominoes that had to fall in order for me to have that experience.
Byron Sanders:	The kind of experience that allowed me to be on the Dean's list my first year when I got to Southern Methodist University. In school, college wasn't a shock for me, and I was patently aware that every day when I drove back home, and we crossed at Trinity, and I'm passing the neighborhoods that I grew up in, or the neighborhoods where you would take the exit to get to church, and you couldn't forget what was going on with the lives of the folks that were my classmates, or the people that I would play football with, or run track with.
George Mason:	So, the goal shouldn't be that you have to get out in order to move up, that you should be able to move up by staying right where you are.
Byron Sanders:	Opportunity should abound everywhere.
George Mason:	Exactly.
Byron Sanders:	And I knew I had to do something in education. I had no idea what I was going to do. Fast forward, fast forward, fast forward, graduate University of Tulsa, come back, I'm working in pharmaceutical sales, and there was a gaping hole in the fulfillment part of my composition.
George Mason:	Here comes the spiritual.
Byron Sanders:	And went on a really deep search for what that thing was, and I came to a mission statement. Mission of Byron Keith Sanders is to love my God with all my heart, and soul. To be the husband, father, son, and brother according to what pleases him, and to work diligently, and daily in my most sincere efforts to pursue my appointed purpose with honor, character, bravery, and love.
George Mason:	Now wait a minute. That's a mission paragraph.
Byron Sanders:	It's a powerful tool that helped me know what to say yes to, also helped me know what to say no to.
Byron Sanders:	It crystallized my pathway, and became my north star, and it's something that I say every day, I have it stitched into some of my clothes. I mean, it truly is that thing, that anchor that I use to keep my purpose for being on this planet paramount, and forefront.
George Mason:	Good.
Byron Sanders:	And so, that's what led me on the purpose driven path toward working explicitly in the spaces for education. It started early, I was a few steps in, but that really started once I crystallized with that mission statement.
George Mason:	All right, so there's your mission statement.
Byron Sanders:	Yeah.
George Mason:	And it starts with a very biblical language.
Byron Sanders:	Absolutely.
George Mason:	All right, so where'd you get that?
Byron Sanders:	Well, when I first started it was to be, 'cause I had to start somewhere. I had no idea what this statement was going to be, but it was to be the best pharmaceutical sales rep the world has ever known.
George Mason:	It's a long way from love the Lord your God with all your heart, soul strength, and mind, yeah.
Byron Sanders:	But you know what? I mean, I just had to write something down just to get the ball going, but what happened was I went through the why exercise.
George Mason:	Very good.
Byron Sanders:	I kept asking myself, 'Well okay, if that is it, then why?', and I just asked so many why's, studied, prayed, fasted, and it took literally, it took about three months to get there in 2007.
George Mason:	Okay.
Byron Sanders:	And every single word is intentional, and the priorities even in the statement are laid out when I said to love my God with all my heart, and soul, it's an action word that really is kind of the core constitution of who I am from which everything else flows.
George Mason:	Right. Right.
Byron Sanders:	And what it became more for me was not just, 'Hey, this is what I'm going to do', it became an identity.
George Mason:	Yes.
Byron Sanders:	And so no matter where I go, I carry that with me no matter what job I'm doing, that mission statement hasn't changed.
George Mason:	So, this is an important thing to say I think for all of us who I think a lot of people do jobs, and they don't get the difference between a job, and a vocation.
Byron Sanders:	That's right. That's right.
George Mason:	So, I like to say that a job is an occupation.
George Mason:	A vocation is a preoccupation.
Byron Sanders:	That is good.
George Mason:	You know what I'm saying?
Byron Sanders:	Yeah. No, I get it.
George Mason:	That a job is something you can do. A vocation is something you can't not do.
Byron Sanders:	That's it.
George Mason:	And so when you have a mission statement like yours, then what's happening is, really the particulars of how you carry that out are less important, than whether those are being driven by the main thing.
Byron Sanders:	Amen to that.
George Mason:	Yeah.
Byron Sanders:	When I realized that I didn't have a bullseye that I had to hit somewhere down the line in the future.
Byron Sanders:	When I realized that it was much more about who I'm trying to be in this moment, in this time for my God, and being present to the purpose that he's given for me at this moment in time. There's certainly been a trend, but man, every five year plan that I'd written before ends up getting balled up, and tossed out the window.
George Mason:	Sure.
Byron Sanders:	Because I don't have enough imagination to dream up exactly what God has for me.
George Mason:	But the mission doesn't have to change.
Byron Sanders:	That's the beauty.
George Mason:	Exactly. So all right. So, let's move from pharmaceutical, to Big Thought.
Byron Sanders:	Yes.
George Mason:	All right. How did you get from one to the ...
Byron Sanders:	How in the world did that happen? Yeah, well when I was in pharmaceutical, I was like, 'I'm gonna make a ton of money, then I'll do something later on when I'm like 60, or so.'
George Mason:	Hey, your 60's not so bad.
Byron Sanders:	60's a great age. It's a great age, you wear it well.
George Mason:	Okay, thanks.
Byron Sanders:	But honestly, everybody has a different purpose, and different reason for being here, right? And God puts a different little seed inside of you.
Byron Sanders:	For me, it was that I needed to be like you said, for my job, the thing that I was doing the majority of the day that needed to be where I was living my purpose.
George Mason:	Me too.
Byron Sanders:	Yeah, I can tell right, right? And it comes through. So, I resigned, and went to Group Excellence. It was actually a mentor, and tutoring company that we started when we were undergrads at SMU.
George Mason:	Wow.
Byron Sanders:	And I came over at the end of 2008 was when I was making that transition, started top of 2009, it was a bunch of mid to late 20 year olds. So we were a social enterprise before we had the terminology, which really would have helped with the capital raise, but our whole premise was using college students as both mentors, and tutors in schools that needed the help, and with lives that needed the support.
Byron Sanders:	And we grew, and in 2011, we were in INC 500 companies, so we were the fifth fastest growing education company in the country, and I think we did about 15 million top line revenue, 'cause we were working in all the urban centers, major urban centers in Texas except for El Paso.
Byron Sanders:	And it was a joy, because you had all these purpose driven young people out there working alongsides equally brilliant, but unaware students in marginalized communities, and magic was happening all over the state. I think we worked with about a couple of hundred thousand students that year.
Byron Sanders:	And several schools got off the bad list, you know, with state accountability, because of the gains they were able to make. That was Group Excellence, and that started the journey, the first step.
George Mason:	Well, and let's just stop there for a moment, and just reflect on what you just said, and that is, when you put these mentors side by side with people in underprivileged educational settings, the magic starts to happen, and this is something I think people who grow up in privileged communities don't understand in the sense that, that's already happening for them.
George Mason:	I mean, it's just the air they breathe, the water they drink, it's the normal course of life. They have people who look like them, they have people who are successful in their homes, and in their communities, and they aspire to be like that person, but that is not always true in underprivileged, and pretty much generally speaking in underprivileged areas, and so when you do that, you up the human capital imagination, don't you?
Byron Sanders:	Listen, you hit on something amazing right there, because we stretch for the capacity that we believe is reasonable, or rational to attain, even if it's somewhat bold, and audacious, right?
George Mason:	Right, right.
Byron Sanders:	The analogy I always use, if you tell me to go, and make the Olympic four by one relay team, right? I'm actually not going to work very hard for that. It's a little outside of my range, and so I'm like, 'Okay, all right, all right, yeah, sure', right? But if you tell me there's a $500 purse for flag football rec league for 30, to 45 year olds locally in the community, I'll go to practice, I get into shape, I'll stretch, right?
Byron Sanders:	I will go, and play for that, because that's attainable. For a lot of our kids in these communities where they haven't had a role model, their parents themselves didn't have a positive experience with the education system, so they don't have the degree, or whatever, they haven't seen things, right? The world is as small as that block sometimes. Well, telling that guy, or that kid, 'Hey, you can go, and you know, be a doctor, you can be a lawyer'.
George Mason:	Be anything you want to be.
Byron Sanders:	'You can be anything you want to be. Listen, this is the land of opportunity, go get it'.
George Mason:	And that can be crippling, because then when they find out that, that's not really possible for them, now it's their fault, and the self loathing that happens, the loss of self esteem. Let's pick it up there when we come back from our break, because there's so much more that this is gonna pursue. Big Thoughts.
Byron Sanders:	Big Thoughts. So, fast forward a few steps.
George Mason:	Hold that one here. We're gonna promote Big Thought, and we'll come back, and talk.
Byron Sanders:	Cool.
Jim White:	Big Thought is a nonprofit organization that works with partners across the city to provide creative learning programs that enrich the lives of young people. With a mission to close the opportunity gap for youth by making imagination of part of every day learning through educational programs, and system wide community partnerships, Big Thought provides access to high quality learning experiences that power creativity, and foster social, and emotional wellbeing.
George Mason:	We're back with Byron Sanders, and Byron, we were just talking about Big Thought, and about more generally, the capacity for people in underserved communities really to imagine a future that is both of filled with promise, but realistic at the same time, and how to pull that off, and this idea of mentors coming alongside is a crucial part of it.
Byron Sanders:	Absolutely, without a doubt. You know, what a mentor does is it gives a young person permission to succeed.
Byron Sanders:	And it gives them permission to dream, it gives them access to a arsenal of dreams that they might not have had access to before just by simple exposure, right? Just 'cause you don't know what you don't know.
Byron Sanders:	You can't dream of what you'd never seen, or have any type of conception.
George Mason:	Well, and this is actually one of the things that most people don't realize was the negative impact of the school's desegregation in that before desegregation of schools, every black kid, and person of color in their schools had teachers who looked like them, principals who look like them, people who they could look in the eye, could look at them, and they could believe in, they could aspire to, they could see these role models.
George Mason:	You desegregate schools, and all of a sudden what you're doing is you're busing kids into white schools, black principals, and teachers don't get jobs, and they're finding other places to be instead of integrating everybody, where now there's somebody to look up to for everybody, now you put black kids into white schools, and who do they have to look up to?
George Mason:	But then those of us in the white privileged communities say, 'Well look, they're not achieving, because their family structure is bad', you know, that sort of thing, but they don't understand that there's a whole systemic issue involved in all of this that we're now able to get some distance, and reflect upon.
George Mason:	And in doing so, we're starting to make progress in shifting all of that, but every hand on deck here, nonprofits like yours have to play a role in this too.
Byron Sanders:	Absolutely, without a doubt. You know, what you're hitting on is the whole notion of this concept of stereotype threat.
Byron Sanders:	And the risk of it grew when we did desegregation the way we did it.
George Mason:	That's right.
Byron Sanders:	And I think what's important for folks to know is that desegregation as a goal was the right target, the process that we used was the one that was ultimately shown to have long term, some positive effects in closing the opportunity gap, but the way it did it was traumatizing, and it removed those really powerful, and important role models, and people who had just cultural context, and belief that these kids actually were capable.
George Mason:	Well, that's exactly right. I mean there is a kind of cultural intelligence that has to be in play in every context, in order for people to thrive, and you can have all sorts of other kinds of intelligence, but if you lack cultural competence, then there's going to be some irritation, and some failure take place in systems, and so that's what I think we've found in schools that, because we'd never fully got there, and then once we did that, we had White flight.
George Mason:	I'm proud of what I see happening in DISD, I think we have some tremendously innovative progress going on there, and achievement just coming back, but that hasn't actually changed yet that the demographic dynamics, and part of what you're talking about here is strengthening, and supporting those role models that I think are gonna make a real difference.
Byron Sanders:	Absolutely. You know, and mentoring is certainly a part of our work at Big Thought. You know, another really important part of our work is this notion of social and emotional learning, right?
Byron Sanders:	There's a very important body of research, and evidence that is overwhelming, that highlights the effect that trauma has on the life of a human being, and I don't want to limit this to children, because you see it there, but it has long term effects, this whole notion of adverse childhood experiences, right?
Byron Sanders:	There was research, it was a landmark studies done in '97, '98, Center of Disease Control Prevention out in the Western part of the country, and what they did is they actually did the study with a relatively affluent population, because they wanted to show that adverse childhood experiences are fairly universal.
George Mason:	Ah, okay.
Byron Sanders:	But the problem is well, one, they saw that you could actually predict long term health, negative outcomes based on experiences that a child had that would fall in these categories of witnessed maternal abuse, experienced neglect, themself experienced sexual abuse, right?
Byron Sanders:	Those types of categories, there were 10 different categories they were looking at, and what they saw was that you can actually predict not just if they're going to have any mental health issues, but if they were going to have diabetes, or congestive heart failure.
Byron Sanders:	You're actually able to predict early death based on trauma that a person undergoes before the age of 18. That was powerful research. You can understand the implications in the health care, but you also understand the implications in the education sphere, right?
Byron Sanders:	Well, bringing that forward, think about if they saw that, I would say ubiquitous presence of trauma even amongst a relatively affluent population, think about what you see in concentrated poverty, and typically those are communities of color, those are black, and brown communities, and the difference is having trauma does not doom you to having the negative outcomes that come from it, but having trauma without buffers to address it, without a strong, positive, consistent role model, adult role model, without having mental health resources, or being in a place that could be able to provide support, afterschool programs, things like that.
Byron Sanders:	In those instances, you're much more susceptible to long term, negative effects of what childhood trauma brings, and you're not able to flip that into turning kind of that resilience into a strength, and it can have a long term, very significant deleterious effect on a young person, and that's one of the main things that we're dealing with in communities that have been under resourced, that again are always, or typically communities of color.
George Mason:	Well, and let's talk about what happens in under resourced communities, and their schools. What's the first thing that gets cut in those school programs. It's the support systems, and it's the arts.
George Mason:	All right. So, when we talk about what produces healing is the activation of those parts of the brain that music, and the arts, and science, and the like, they create opportunities for people to imagine the world differently. It opens up possibilities for them beyond being locked into where they are, and yet those are the programs that go first.
George Mason:	Because we think for all the good that STEM does, you know, that science technology, and junior year math, because we want people to be able to get jobs, and to work productively and all of that. Nonetheless, the holistic approach to being able to be a full human being, and to be well, and to be a leader, not just an automaton, not just a worker bee, but actually to be a leader, to think creatively, that's where the arts comes in, and it's through the imagination, and whatnot.
Byron Sanders:	That's right, the arts, the creative process. Human beings create.
Byron Sanders:	Right? Living in those places of what could be on the frontiers of what's possible, if you have not built your creative muscles that comes through the arts, comes through project based learning, comes through service learning, things where you get to go, and you have to create, then we're doing us as a society, but also the individual a tremendous disservice.
Byron Sanders:	The thing that is really powerful about the advance in technology in our lives, in the workforce is that it's really revealing the things that have always mattered most, but it's stripping away those other things that we used to think were the most important.
Byron Sanders:	Here's what I mean by that. Automation, artificial intelligence, machine learning, the technology boom that we're in the middle of right now. The Federal Department of Labor is saying that 65 % of kids today in school are going to be working in jobs that don't yet exist.
Byron Sanders:	That's actually a pretty conservative estimate, some estimates are as high as 85 % by 2030.
Byron Sanders:	New, completely just unimagined jobs, right? Well okay, if that's our reality, how in the world are you going to prepare them for that?
Byron Sanders:	As educators, as a system right now, how do you prepare a child for a world that's so dynamic, we can't even imagine it?
Byron Sanders:	Well, what you have to do, and what futurists are saying, what macro economists are saying, what entrepreneurs are saying is that they're actually is going back to the basics. They're saying that we need to teach kids creative problem solving.
Byron Sanders:	The second thing they say is most important, we need to teach kids. Martin Ford has a great book, it's called Rise of the Robots. The two elements that he says best prepare people for this new, and dynamic world. One is how to be a creative thinker, two is how to build complex human relationships.
Byron Sanders:	Because turns out, you talked about automatons. You know who's better at being an automaton than a human? An actual robot, right?
George Mason:	Yeah, right.
Byron Sanders:	So, all the things that are process-oriented, predictable, repetitive, redundant, things like that, those things are being done by the machines, and they're being done a lot better. So, where is the human beings place in society? Anything that requires creativity, and anything that requires a human interaction, and we actually see this at a macro level as well.
Byron Sanders:	If you look at 1975. 1975, you look at the valuation of the S&P 500, you had about 84, and 85 % of that valuation of all of those companies, hard assets, inventory, real estate, the widgets that they made, right? Fast forward to 2015, it's completely inverse.
Byron Sanders:	83, 84% of the valuation are things that are creative assets: IP, brand equity, the expectation of you being able to do well, right? That's what's even moving our large macro economic systems, creativity, and human beings.
George Mason:	Well, and let's just say if we were to think about this in terms of the current dynamics of the workforce in America, that the people who have lived, and worked in jobs that they feel are no longer profitable for them, or they feel left out by this economy.
George Mason:	You know, we talk about retraining for new jobs, and all of that, but when you take that entire workforce, and they haven't learned from a young age to think creatively, and solve problems, what are they left with? Well, they're left with fear.
George Mason:	Fear of the future, and when you operate out of fear, then you do things that you wouldn't do otherwise to protect yourself, and that doesn't produce a healthy society.
Byron Sanders:	Amen to that. It means that we're not fit for the future, and this is why there's a tremendous sense of urgency that we should have in order to change our systems, and while we're moving, you know, the fairly inertia ridden systems, and not just education systems, I'm talking about healthcare systems, I'm talking about all these different kinds of systems, we have to have really important partners in the meantime, because the kids get one shot, right?
Byron Sanders:	They can't wait for us to get our act together. That's why Big Thought's work, and organizations like it is so important, because we come alongside a partner to the K-12 system, and we provide a space that's outside of the accountability based systems that we have to run in our public education.
George Mason:	Of course.
Byron Sanders:	Right?
George Mason:	This is alongside.
Byron Sanders:	This is alongside, and we create space for those creative learning opportunities, and we can connect those to explicit career paths that youth get to explore themselves.
Byron Sanders:	If we can build systems that actually encourage youth agency where they're thinking, deciding, and moving of their own accord, then we're better preparing them for a 21st century workforce, because those are the kinds of the jobs that will require human beings where there is agency, forethought, and imagining what's possible, as opposed to waiting for things to roll down hill.
George Mason:	Well, Byron, thank you for your leadership with Big Thought, and for helping us understand the big picture of what's going on in all of this. We're grateful for your work. Thanks for being on Good God.
Byron Sanders:	What a pleasure.
George Mason:	Terrific.
Byron Sanders:	Thank you.
George Mason:	All right.
Jim White:	Good God is created by Dr. George Mason, produced, and directed by Jim White. Guest coordination, and social media by Upward Strategy Group. Here's grateful appreciation to Evolve Technology for location production facilities, Evolve Technology for home, audio, video, and lighting design.
Jim White:	Enjoy more, think less with Evolve. See their great work at Evolvedallas.com. Thanks to Wendy Krispin Caterer for guest parking accommodations. Good God, conversations with George Mason is the podcast devoted to bringing you ideas about God, and faith, and the common good. All material. Copyright 2018 by Faith Commons.
Jim White:	Big Thought is a nonprofit organization that works with partners across the city to provide creative learning programs that enrich the lives of young people. With a mission to close the opportunity gap for youth by making imagination of part of every day learning through educational programs, and system wide community partnerships, Big Thought provides access to high quality learning experiences that power, creativity, and foster social, and emotional wellbeing.
Good God Project March 21, 2019
Episode 49: Peggy Wehmeyer
Episode 47: Cheryl Allison
Apple PodcastFacebookInstagramYouTube
©Faith Commons 2019 • POWERED BY SQUARESPACE


text:
Home » Lifestyle » Christian Eriksen opens up on Euro 2020 cardiac arrest and reveals he died for FIVE minutes before medics saved his life
Christian Eriksen opens up on Euro 2020 cardiac arrest and reveals he died for FIVE minutes before medics saved his life
CHRISTIAN ERIKSEN has revealed he DIED for five minutes following his horrific collapse at Euro 2020.
The midfielder suffered a cardiac arrest in Denmark's Euro 2020 opener against Finland last June.
But the former Tottenham and Inter Milan ace was eventually revived thanks to the quick thinking of team-mate Simon Kjaer and the incredible work of the pitchside doctors.
Eriksen opened up on the incident during a candid interview with Danish TV channel DR 1, revealing his heart stopped for five minutes.
Mason Greenwood picks Lionel Messi over Man Utd legend Cristiano Ronaldo and claims GOAT debate has finally been settled
Crush at Kabul airport kills 7 as Afghans try to flee
Labour conference: Jeremy Corbyn reveals he spoke to quitting shadow minister Andy McDonald – but denies Machiavellian plot
He said: "It was amazing that so many people felt the need to write or send flowers.
"It had an impact on so many people and they felt the need to let me and my family know.
"That made me very happy.
"At the hospital, they kept saying I'd receive more and more flowers.
Most read in Euro 2020
5 important things you should do NOW to help Britain beat Covid, says Boris
GOGGLESPROG
Gogglebox's Georgia Bell reveals she's pregnant with her first child
BROTHERS DEAD
TV star Igor Bodganoff dies 'from Covid' at 72 days after bug killed twin
UNDER-RAGE
An Asda delivery driver handed CIGARETTES to my 13-year-old daughter
FREE BETS: GET OVER £2,000 IN NEW CUSTOMER DEALS
"It was weird because I didn't expect people to send flowers – because I died for five minutes.
"It was quite extraordinary, but it was very nice of everyone and it's been a big help to me to receive all those best wishes.
"And people still write to me."
Eriksen, 29, has thanked all those who helped save his life- as well as their loved ones.
He added: "I've thanked people I've met in person, I've thanked the doctors, my team-mates and their families in person.
"But all the fans who have sent thousands of letters, emails and flowers or who comes up to me in the street – both in Italy and Denmark – I thank them all for the support that I got from all over the world that helped me through this."
Eriksen shared a snippet of his heartfelt interview with his 899,000 Twitter followers.
The Dane tweeted: "It's been a while.
"I hope this video explains how I feel towards all the messages, letters, emails, flowers, thoughts and everything else I've got!
"Thank you for all the love."
Eriksen's playing future is unclear following his out-of-the-blue cardiac arrest – which led to him being fitted with an implantable cardioverter-defibrillator (ICD).
The Denmark international had his contract with Italian champions Inter Milan terminated by mutual consent in December.
An Inter statement read: "FC Internazionale Milano announces that an agreement has been reached for the consensual termination of Christian Eriksen's contract.
"The club and the entire Nerazzurri family embrace the player and wish him the best for his future.
"Christian was a key figure in our march to the Scudetto – a team effort which Eriksen contributed to with his vision, intuition, passing, assists and goals, including some big ones."
Despite his near-death experience, free agent Eriksen has no intention of hanging up his boots.
He said: "My goal is to play in the World Cup in Qatar. I want to play.
"That's been my mindset all along.
"It's a goal, it's a dream. Whether I'll be picked is another thing. But it's my dream to come back.
"I'm sure I can come back because I don\t feel any different. Physically, I'm back in top shape.
"That's my goal and it's still some time away. So until then, I'm just going to play football and prove that I'm back at the same level."
Body language expert makes surprising claims about Harry and Meghan's latest appearance
Michael Jackson narrowly escaped being mauled by a crocodile in Neverland Ranch
Beyoncé's mom tells Vogue to hire more Black photographers
Cheltenham Festival 2021 Gold Cup ultimate guide: Best tips, odds, list of 41 runners ahead of £625,000 showpiece
Ne-Yo and Crystal Smith expecting 3rd child together after reconciliation
Tagged Christian, Eriksen, On, opens, up
Kevin Hart Gives Daughter Heaven $85K Mercedes SUV for Sweet 16
Nick Kyrgios Withdraws from US Open Over Coronavirus Concerns: 'Play at Your Own Risk'
Dolly Parton, Blake Shelton and More Mourn Kenny Rogers' Death: 'Rest in Peace Gambler'
Emma Watson accused of anti-Semitism by Israel UN envoys
How Harmony Montgomery, 7, was separated from her brother as family claims missing blind girl was seen with 'black eye'
Katie Price drops 'mucky mansion' for good after doctors warn her to stay away
Samantha Bee Opened Up On Filming Her Show From Her Backyard Amid The Coronavirus
Bungling developers slammed as 'brain dead' after house gate built BEHIND sign – with only a tiny gap left to get inside
Chloe Zhao Makes History as the First Woman of Color to Win a Best Director Oscar
Saweetie Just Got Candid About Her Breakup With Quavo and Getting Over Heartbreak


text:
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/blkdev.h>
#include <linux/proc_fs.h>
#include <linux/spinlock.h>
#include <linux/stat.h>
#include <linux/tc.h>

#include <asm/dma.h>
#include <asm/irq.h>
#include <asm/pgtable.h>
#include <asm/system.h>

#include <asm/dec/interrupts.h>
#include <asm/dec/ioasic.h>
#include <asm/dec/ioasic_addrs.h>
#include <asm/dec/ioasic_ints.h>
#include <asm/dec/machtype.h>
#include <asm/dec/system.h>

#define DEC_SCSI_SREG 0
#define DEC_SCSI_DMAREG 0x40000
#define DEC_SCSI_SRAM 0x80000
#define DEC_SCSI_DIAG 0xC0000

#include "scsi.h"
#include <scsi/scsi_host.h>
#include "NCR53C9x.h"

static int  dma_bytes_sent(struct NCR_ESP *esp, int fifo_count);
static void dma_drain(struct NCR_ESP *esp);
static int  dma_can_transfer(struct NCR_ESP *esp, struct scsi_cmnd *sp);
static void dma_dump_state(struct NCR_ESP *esp);
static void dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length);
static void dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length);
static void dma_ints_off(struct NCR_ESP *esp);
static void dma_ints_on(struct NCR_ESP *esp);
static int  dma_irq_p(struct NCR_ESP *esp);
static int  dma_ports_p(struct NCR_ESP *esp);
static void dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write);
static void dma_mmu_get_scsi_one(struct NCR_ESP *esp, struct scsi_cmnd * sp);
static void dma_mmu_get_scsi_sgl(struct NCR_ESP *esp, struct scsi_cmnd * sp);
static void dma_advance_sg(struct scsi_cmnd * sp);

static void pmaz_dma_drain(struct NCR_ESP *esp);
static void pmaz_dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length);
static void pmaz_dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length);
static void pmaz_dma_ints_off(struct NCR_ESP *esp);
static void pmaz_dma_ints_on(struct NCR_ESP *esp);
static void pmaz_dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write);
static void pmaz_dma_mmu_get_scsi_one(struct NCR_ESP *esp, struct scsi_cmnd * sp);

#define TC_ESP_RAM_SIZE 0x20000
#define ESP_TGT_DMA_SIZE ((TC_ESP_RAM_SIZE/7) & ~(sizeof(int)-1))
#define ESP_NCMD 7

#define TC_ESP_DMAR_MASK  0x1ffff
#define TC_ESP_DMAR_WRITE 0x80000000
#define TC_ESP_DMA_ADDR(x) ((unsigned)(x) & TC_ESP_DMAR_MASK)

u32 esp_virt_buffer;
int scsi_current_length;

volatile unsigned char cmd_buffer[16];
volatile unsigned char pmaz_cmd_buffer[16];
				/* This is where all commands are put
				 * before they are trasfered to the ESP chip
				 * via PIO.
				 */

static irqreturn_t scsi_dma_merr_int(int, void *);
static irqreturn_t scsi_dma_err_int(int, void *);
static irqreturn_t scsi_dma_int(int, void *);

static struct scsi_host_template dec_esp_template = {
	.module			= THIS_MODULE,
	.name			= "NCR53C94",
	.info			= esp_info,
	.queuecommand		= esp_queue,
	.eh_abort_handler	= esp_abort,
	.eh_bus_reset_handler	= esp_reset,
	.slave_alloc		= esp_slave_alloc,
	.slave_destroy		= esp_slave_destroy,
	.proc_info		= esp_proc_info,
	.proc_name		= "dec_esp",
	.can_queue		= 7,
	.sg_tablesize		= SG_ALL,
	.cmd_per_lun		= 1,
	.use_clustering		= DISABLE_CLUSTERING,
};

static struct NCR_ESP *dec_esp_platform;

/***************************************************************** Detection */
static int dec_esp_platform_probe(void)
{
	struct NCR_ESP *esp;
	int err = 0;

	if (IOASIC) {
		esp = esp_allocate(&dec_esp_template, NULL, 1);

		/* Do command transfer with programmed I/O */
		esp->do_pio_cmds = 1;

		/* Required functions */
		esp->dma_bytes_sent = &dma_bytes_sent;
		esp->dma_can_transfer = &dma_can_transfer;
		esp->dma_dump_state = &dma_dump_state;
		esp->dma_init_read = &dma_init_read;
		esp->dma_init_write = &dma_init_write;
		esp->dma_ints_off = &dma_ints_off;
		esp->dma_ints_on = &dma_ints_on;
		esp->dma_irq_p = &dma_irq_p;
		esp->dma_ports_p = &dma_ports_p;
		esp->dma_setup = &dma_setup;

		/* Optional functions */
		esp->dma_barrier = 0;
		esp->dma_drain = &dma_drain;
		esp->dma_invalidate = 0;
		esp->dma_irq_entry = 0;
		esp->dma_irq_exit = 0;
		esp->dma_poll = 0;
		esp->dma_reset = 0;
		esp->dma_led_off = 0;
		esp->dma_led_on = 0;

		/* virtual DMA functions */
		esp->dma_mmu_get_scsi_one = &dma_mmu_get_scsi_one;
		esp->dma_mmu_get_scsi_sgl = &dma_mmu_get_scsi_sgl;
		esp->dma_mmu_release_scsi_one = 0;
		esp->dma_mmu_release_scsi_sgl = 0;
		esp->dma_advance_sg = &dma_advance_sg;

		/* SCSI chip speed */
		esp->cfreq = 25000000;

		esp->dregs = 0;

		/* ESP register base */
		esp->eregs = (void *)CKSEG1ADDR(dec_kn_slot_base +
						IOASIC_SCSI);

		/* Set the command buffer */
		esp->esp_command = (volatile unsigned char *) cmd_buffer;

		/* get virtual dma address for command buffer */
		esp->esp_command_dvma = virt_to_phys(cmd_buffer);

		esp->irq = dec_interrupt[DEC_IRQ_ASC];

		esp->scsi_id = 7;

		/* Check for differential SCSI-bus */
		esp->diff = 0;

		err = request_irq(esp->irq, esp_intr, IRQF_DISABLED,
				  "ncr53c94", esp->ehost);
		if (err)
			goto err_alloc;
		err = request_irq(dec_interrupt[DEC_IRQ_ASC_MERR],
				  scsi_dma_merr_int, IRQF_DISABLED,
				  "ncr53c94 error", esp->ehost);
		if (err)
			goto err_irq;
		err = request_irq(dec_interrupt[DEC_IRQ_ASC_ERR],
				  scsi_dma_err_int, IRQF_DISABLED,
				  "ncr53c94 overrun", esp->ehost);
		if (err)
			goto err_irq_merr;
		err = request_irq(dec_interrupt[DEC_IRQ_ASC_DMA], scsi_dma_int,
				  IRQF_DISABLED, "ncr53c94 dma", esp->ehost);
		if (err)
			goto err_irq_err;

		esp_initialize(esp);

		err = scsi_add_host(esp->ehost, NULL);
		if (err) {
			printk(KERN_ERR "ESP: Unable to register adapter\n");
			goto err_irq_dma;
		}

		scsi_scan_host(esp->ehost);

		dec_esp_platform = esp;
	}

	return 0;

err_irq_dma:
	free_irq(dec_interrupt[DEC_IRQ_ASC_DMA], esp->ehost);
err_irq_err:
	free_irq(dec_interrupt[DEC_IRQ_ASC_ERR], esp->ehost);
err_irq_merr:
	free_irq(dec_interrupt[DEC_IRQ_ASC_MERR], esp->ehost);
err_irq:
	free_irq(esp->irq, esp->ehost);
err_alloc:
	esp_deallocate(esp);
	scsi_host_put(esp->ehost);
	return err;
}

static int __init dec_esp_probe(struct device *dev)
{
	struct NCR_ESP *esp;
	resource_size_t start, len;
	int err;

	esp = esp_allocate(&dec_esp_template,  NULL, 1);

	dev_set_drvdata(dev, esp);

	start = to_tc_dev(dev)->resource.start;
	len = to_tc_dev(dev)->resource.end - start + 1;

	if (!request_mem_region(start, len, dev->bus_id)) {
		printk(KERN_ERR "%s: Unable to reserve MMIO resource\n",
		       dev->bus_id);
		err = -EBUSY;
		goto err_alloc;
	}

	/* Store base addr into esp struct.  */
	esp->slot = start;

	esp->dregs = 0;
	esp->eregs = (void *)CKSEG1ADDR(start + DEC_SCSI_SREG);
	esp->do_pio_cmds = 1;

	/* Set the command buffer.  */
	esp->esp_command = (volatile unsigned char *)pmaz_cmd_buffer;

	/* Get virtual dma address for command buffer.  */
	esp->esp_command_dvma = virt_to_phys(pmaz_cmd_buffer);

	esp->cfreq = tc_get_speed(to_tc_dev(dev)->bus);

	esp->irq = to_tc_dev(dev)->interrupt;

	/* Required functions.  */
	esp->dma_bytes_sent = &dma_bytes_sent;
	esp->dma_can_transfer = &dma_can_transfer;
	esp->dma_dump_state = &dma_dump_state;
	esp->dma_init_read = &pmaz_dma_init_read;
	esp->dma_init_write = &pmaz_dma_init_write;
	esp->dma_ints_off = &pmaz_dma_ints_off;
	esp->dma_ints_on = &pmaz_dma_ints_on;
	esp->dma_irq_p = &dma_irq_p;
	esp->dma_ports_p = &dma_ports_p;
	esp->dma_setup = &pmaz_dma_setup;

	/* Optional functions.  */
	esp->dma_barrier = 0;
	esp->dma_drain = &pmaz_dma_drain;
	esp->dma_invalidate = 0;
	esp->dma_irq_entry = 0;
	esp->dma_irq_exit = 0;
	esp->dma_poll = 0;
	esp->dma_reset = 0;
	esp->dma_led_off = 0;
	esp->dma_led_on = 0;

	esp->dma_mmu_get_scsi_one = pmaz_dma_mmu_get_scsi_one;
	esp->dma_mmu_get_scsi_sgl = 0;
	esp->dma_mmu_release_scsi_one = 0;
	esp->dma_mmu_release_scsi_sgl = 0;
	esp->dma_advance_sg = 0;

	err = request_irq(esp->irq, esp_intr, IRQF_DISABLED, "PMAZ_AA",
			  esp->ehost);
	if (err) {
		printk(KERN_ERR "%s: Unable to get IRQ %d\n",
		       dev->bus_id, esp->irq);
		goto err_resource;
	}

	esp->scsi_id = 7;
	esp->diff = 0;
	esp_initialize(esp);

	err = scsi_add_host(esp->ehost, dev);
	if (err) {
		printk(KERN_ERR "%s: Unable to register adapter\n",
		       dev->bus_id);
		goto err_irq;
	}

	scsi_scan_host(esp->ehost);

	return 0;

err_irq:
	free_irq(esp->irq, esp->ehost);

err_resource:
	release_mem_region(start, len);

err_alloc:
	esp_deallocate(esp);
	scsi_host_put(esp->ehost);
	return err;
}

static void __exit dec_esp_platform_remove(void)
{
	struct NCR_ESP *esp = dec_esp_platform;

	free_irq(esp->irq, esp->ehost);
	esp_deallocate(esp);
	scsi_host_put(esp->ehost);
	dec_esp_platform = NULL;
}

static void __exit dec_esp_remove(struct device *dev)
{
	struct NCR_ESP *esp = dev_get_drvdata(dev);

	free_irq(esp->irq, esp->ehost);
	esp_deallocate(esp);
	scsi_host_put(esp->ehost);
}

/************************************************************* DMA Functions */
static irqreturn_t scsi_dma_merr_int(int irq, void *dev_id)
{
	printk("Got unexpected SCSI DMA Interrupt! < ");
	printk("SCSI_DMA_MEMRDERR ");
	printk(">\n");

	return IRQ_HANDLED;
}

static irqreturn_t scsi_dma_err_int(int irq, void *dev_id)
{
	/* empty */

	return IRQ_HANDLED;
}

static irqreturn_t scsi_dma_int(int irq, void *dev_id)
{
	u32 scsi_next_ptr;

	scsi_next_ptr = ioasic_read(IO_REG_SCSI_DMA_P);

	/* next page */
	scsi_next_ptr = (((scsi_next_ptr >> 3) + PAGE_SIZE) & PAGE_MASK) << 3;
	ioasic_write(IO_REG_SCSI_DMA_BP, scsi_next_ptr);
	fast_iob();

	return IRQ_HANDLED;
}

static int dma_bytes_sent(struct NCR_ESP *esp, int fifo_count)
{
	return fifo_count;
}

static void dma_drain(struct NCR_ESP *esp)
{
	u32 nw, data0, data1, scsi_data_ptr;
	u16 *p;

	nw = ioasic_read(IO_REG_SCSI_SCR);

	/*
	 * Is there something in the dma buffers left?
	 */
	if (nw) {
		scsi_data_ptr = ioasic_read(IO_REG_SCSI_DMA_P) >> 3;
		p = phys_to_virt(scsi_data_ptr);
		switch (nw) {
		case 1:
			data0 = ioasic_read(IO_REG_SCSI_SDR0);
			p[0] = data0 & 0xffff;
			break;
		case 2:
			data0 = ioasic_read(IO_REG_SCSI_SDR0);
			p[0] = data0 & 0xffff;
			p[1] = (data0 >> 16) & 0xffff;
			break;
		case 3:
			data0 = ioasic_read(IO_REG_SCSI_SDR0);
			data1 = ioasic_read(IO_REG_SCSI_SDR1);
			p[0] = data0 & 0xffff;
			p[1] = (data0 >> 16) & 0xffff;
			p[2] = data1 & 0xffff;
			break;
		default:
			printk("Strange: %d words in dma buffer left\n", nw);
			break;
		}
	}
}

static int dma_can_transfer(struct NCR_ESP *esp, struct scsi_cmnd * sp)
{
	return sp->SCp.this_residual;
}

static void dma_dump_state(struct NCR_ESP *esp)
{
}

static void dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length)
{
	u32 scsi_next_ptr, ioasic_ssr;
	unsigned long flags;

	if (vaddress & 3)
		panic("dec_esp.c: unable to handle partial word transfers, yet...");

	dma_cache_wback_inv((unsigned long) phys_to_virt(vaddress), length);

	spin_lock_irqsave(&ioasic_ssr_lock, flags);

	fast_mb();
	ioasic_ssr = ioasic_read(IO_REG_SSR);

	ioasic_ssr &= ~IO_SSR_SCSI_DMA_EN;
	ioasic_write(IO_REG_SSR, ioasic_ssr);

	fast_wmb();
	ioasic_write(IO_REG_SCSI_SCR, 0);
	ioasic_write(IO_REG_SCSI_DMA_P, vaddress << 3);

	/* prepare for next page */
	scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
	ioasic_write(IO_REG_SCSI_DMA_BP, scsi_next_ptr);

	ioasic_ssr |= (IO_SSR_SCSI_DMA_DIR | IO_SSR_SCSI_DMA_EN);
	fast_wmb();
	ioasic_write(IO_REG_SSR, ioasic_ssr);

	fast_iob();
	spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
}

static void dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length)
{
	u32 scsi_next_ptr, ioasic_ssr;
	unsigned long flags;

	if (vaddress & 3)
		panic("dec_esp.c: unable to handle partial word transfers, yet...");

	dma_cache_wback_inv((unsigned long) phys_to_virt(vaddress), length);

	spin_lock_irqsave(&ioasic_ssr_lock, flags);

	fast_mb();
	ioasic_ssr = ioasic_read(IO_REG_SSR);

	ioasic_ssr &= ~(IO_SSR_SCSI_DMA_DIR | IO_SSR_SCSI_DMA_EN);
	ioasic_write(IO_REG_SSR, ioasic_ssr);

	fast_wmb();
	ioasic_write(IO_REG_SCSI_SCR, 0);
	ioasic_write(IO_REG_SCSI_DMA_P, vaddress << 3);

	/* prepare for next page */
	scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
	ioasic_write(IO_REG_SCSI_DMA_BP, scsi_next_ptr);

	ioasic_ssr |= IO_SSR_SCSI_DMA_EN;
	fast_wmb();
	ioasic_write(IO_REG_SSR, ioasic_ssr);

	fast_iob();
	spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
}

static void dma_ints_off(struct NCR_ESP *esp)
{
	disable_irq(dec_interrupt[DEC_IRQ_ASC_DMA]);
}

static void dma_ints_on(struct NCR_ESP *esp)
{
	enable_irq(dec_interrupt[DEC_IRQ_ASC_DMA]);
}

static int dma_irq_p(struct NCR_ESP *esp)
{
	return (esp->eregs->esp_status & ESP_STAT_INTR);
}

static int dma_ports_p(struct NCR_ESP *esp)
{
	/*
	 * FIXME: what's this good for?
	 */
	return 1;
}

static void dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write)
{
	/*
	 * DMA_ST_WRITE means "move data from device to memory"
	 * so when (write) is true, it actually means READ!
	 */
	if (write)
		dma_init_read(esp, addr, count);
	else
		dma_init_write(esp, addr, count);
}

static void dma_mmu_get_scsi_one(struct NCR_ESP *esp, struct scsi_cmnd * sp)
{
	sp->SCp.ptr = (char *)virt_to_phys(sp->request_buffer);
}

static void dma_mmu_get_scsi_sgl(struct NCR_ESP *esp, struct scsi_cmnd * sp)
{
	int sz = sp->SCp.buffers_residual;
	struct scatterlist *sg = sp->SCp.buffer;

	while (sz >= 0) {
		sg[sz].dma_address = page_to_phys(sg[sz].page) + sg[sz].offset;
		sz--;
	}
	sp->SCp.ptr = (char *)(sp->SCp.buffer->dma_address);
}

static void dma_advance_sg(struct scsi_cmnd * sp)
{
	sp->SCp.ptr = (char *)(sp->SCp.buffer->dma_address);
}

static void pmaz_dma_drain(struct NCR_ESP *esp)
{
	memcpy(phys_to_virt(esp_virt_buffer),
	       (void *)CKSEG1ADDR(esp->slot + DEC_SCSI_SRAM +
				  ESP_TGT_DMA_SIZE),
	       scsi_current_length);
}

static void pmaz_dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length)
{
	volatile u32 *dmareg =
		(volatile u32 *)CKSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);

	if (length > ESP_TGT_DMA_SIZE)
		length = ESP_TGT_DMA_SIZE;

	*dmareg = TC_ESP_DMA_ADDR(ESP_TGT_DMA_SIZE);

	iob();

	esp_virt_buffer = vaddress;
	scsi_current_length = length;
}

static void pmaz_dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length)
{
	volatile u32 *dmareg =
		(volatile u32 *)CKSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);

	memcpy((void *)CKSEG1ADDR(esp->slot + DEC_SCSI_SRAM +
				  ESP_TGT_DMA_SIZE),
	       phys_to_virt(vaddress), length);

	wmb();
	*dmareg = TC_ESP_DMAR_WRITE | TC_ESP_DMA_ADDR(ESP_TGT_DMA_SIZE);

	iob();
}

static void pmaz_dma_ints_off(struct NCR_ESP *esp)
{
}

static void pmaz_dma_ints_on(struct NCR_ESP *esp)
{
}

static void pmaz_dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write)
{
	/*
	 * DMA_ST_WRITE means "move data from device to memory"
	 * so when (write) is true, it actually means READ!
	 */
	if (write)
		pmaz_dma_init_read(esp, addr, count);
	else
		pmaz_dma_init_write(esp, addr, count);
}

static void pmaz_dma_mmu_get_scsi_one(struct NCR_ESP *esp, struct scsi_cmnd * sp)
{
	sp->SCp.ptr = (char *)virt_to_phys(sp->request_buffer);
}

#ifdef CONFIG_TC
static int __init dec_esp_tc_probe(struct device *dev);
static int __exit dec_esp_tc_remove(struct device *dev);

static const struct tc_device_id dec_esp_tc_table[] = {
        { "DEC     ", "PMAZ-AA " },
        { }
};
MODULE_DEVICE_TABLE(tc, dec_esp_tc_table);

static struct tc_driver dec_esp_tc_driver = {
        .id_table       = dec_esp_tc_table,
        .driver         = {
                .name   = "dec_esp",
                .bus    = &tc_bus_type,
                .probe  = dec_esp_tc_probe,
                .remove = __exit_p(dec_esp_tc_remove),
        },
};

static int __init dec_esp_tc_probe(struct device *dev)
{
	int status = dec_esp_probe(dev);
	if (!status)
		get_device(dev);
	return status;
}

static int __exit dec_esp_tc_remove(struct device *dev)
{
	put_device(dev);
	dec_esp_remove(dev);
	return 0;
}
#endif

static int __init dec_esp_init(void)
{
	int status;

	status = tc_register_driver(&dec_esp_tc_driver);
	if (!status)
		dec_esp_platform_probe();

	if (nesps) {
		pr_info("ESP: Total of %d ESP hosts found, "
			"%d actually in use.\n", nesps, esps_in_use);
		esps_running = esps_in_use;
	}

	return status;
}

static void __exit dec_esp_exit(void)
{
	dec_esp_platform_remove();
	tc_unregister_driver(&dec_esp_tc_driver);
}

module_init(dec_esp_init);
module_exit(dec_esp_exit);

redpajama_set_name: RedPajamaGithub


text:
Suffolk Living
Locals Choice
Cause of downtown fire unknown
Published 10:41 pm Thursday, August 20, 2009
By R.E. Spears III
Two weeks after a downtown fire gutted part of one building and closed three businesses, fire marshals have conceded that they may never know what caused it.
Barring some unforeseen evidence in the case of the fire at 149 W. Washington St., Suffolk spokeswoman Debbie George said Thursday, the cause will remain "undetermined" in the fire marshal's report.
The blaze started in an apartment above the Cherry Gift Shop. That apartment and the roof of the building were destroyed. The gift shop downstairs, along with two businesses in the adjoining building, Red Thread Studio and Dave's Fitness Coaching, suffered smoke and water damage.
All three businesses remain shuttered while cleanup efforts continue and their owners decide whether to reopen.
A benefit fundraiser is planned for Sept. 12 at the Suffolk Museum for Red Thread Studio. Organizers plan a silent auction, and are asking for donations of products, gifts, food and cash to help out.
Call Nancy Kinzinger at 514-7284 for more information.
Red Thread Studios, which specialized in yarn and fabric art pieces, was especially hard hit, because most of its stock could not be salvaged after the smoke damage, owners Angelia and Steve Armstrong said after the fire.
Adding further stress to already-jangled nerves, a smoke detector alarmed in the Red Thread building at about 11 a.m. on Thursday, resulting in another massive response by Suffolk Fire and Rescue.
Firefighters arrived on scene in full turnout gear. Pumper trucks, ladder trucks and other equipment blocked the road in front of the store all the way to Main Street.
Angelia Armstrong stood on the sidewalk awaiting word about the alarm as firefighters with thermal imaging equipment scanned the buildings. No danger was discovered, but the response had been reminiscent of what downtowners had seen two weeks earlier.
The adjacent building, which housed the Cherry Gift Shop, had last been inspected by fire marshals in 2002, according to George, who said officials had told her such inspections are not mandatory for most Suffolk businesses.
During that voluntary 2002 inspection, she said, inspectors were on the lookout for "life safety issues" — things like improperly marked exits, improper storage of hazardous materials and non-functional safety devices.
Fire marshals visit various parts of the city on a rotating basis, asking business owners for access to their properties in order to complete the inspections, George said.
When they visited the W. Washington Street area downtown earlier this year, nobody answered a knock at the door of 149 W. Washington St., so the Cherry Gift Shop and its apartment upstairs — which evidence indicated may have been occupied at the time of the fire — missed getting an inspection.
Foundation celebrates eighth MLK Day event
Youngkin promotes unity, agenda at inauguration
Despite new governor's new order, SPS to continue masking in schools
Police investigate second carjacking of the week
Rifle regulations sought
© 2022, The Suffolk News-Herald