text:
Cultural diversity and entrepreneurial activity
Claudia Álvarez, David Urbano
Grupo de Investigación en Cultura y Gestión Organizacional
Huella
The objective of this paper is to analyze the effects of cultural diversity (ethnic, religious and linguistic fragmentation) on entrepreneurial activity. Using data from 39 countries participating in the Global Entrepreneurship Monitor (GEM) for 2008 and using various linear regressions, the importance of ethnic and linguistic over religious fragmentation as conditioning factors for entrepreneurship is demonstrated. In terms of implications, the study permits advancing, on the one hand, in the relationship between informal institutions such as culture and entrepreneurial activity, from the more novel perspective of cultural diversity in the context of institutional theory. Also, the research has some practical implications for policy makers in terms of designing policies and strategies to promote entrepreneurial activity in the current context of globalization, which favors geographical mobility and therefore, cultural diversity.
Inglés estadounidense
Revista de Ciencias Sociales
Publicada - 30 jul 2013
Acceder al documento
https://www.scopus.com/inward/record.uri?partnerID=HzOxMe3b&scp=84880599695&origin=inward
Profundice en los temas de investigación de 'Cultural diversity and entrepreneurial activity'. En conjunto forman una huella única.
cultural diversity Ciencias sociales 100%
fragmentation Ciencias sociales 64%
entrepreneurship Ciencias sociales 64%
linguistics Ciencias sociales 43%
conditioning Ciencias sociales 34%
globalization Ciencias sociales 24%
migration Ciencias sociales 23%
regression Ciencias sociales 21%
Ver la huella completa
Álvarez, C., & Urbano, D. (2013). Cultural diversity and entrepreneurial activity. Revista de Ciencias Sociales, 154-169. https://www.scopus.com/inward/record.uri?partnerID=HzOxMe3b&scp=84880599695&origin=inward
Álvarez, Claudia ; Urbano, David. / Cultural diversity and entrepreneurial activity. En: Revista de Ciencias Sociales. 2013 ; pp. 154-169.
@article{9a11c63b74264057b0f54992e7cf2e46,
title = "Cultural diversity and entrepreneurial activity",
abstract = "The objective of this paper is to analyze the effects of cultural diversity (ethnic, religious and linguistic fragmentation) on entrepreneurial activity. Using data from 39 countries participating in the Global Entrepreneurship Monitor (GEM) for 2008 and using various linear regressions, the importance of ethnic and linguistic over religious fragmentation as conditioning factors for entrepreneurship is demonstrated. In terms of implications, the study permits advancing, on the one hand, in the relationship between informal institutions such as culture and entrepreneurial activity, from the more novel perspective of cultural diversity in the context of institutional theory. Also, the research has some practical implications for policy makers in terms of designing policies and strategies to promote entrepreneurial activity in the current context of globalization, which favors geographical mobility and therefore, cultural diversity.",
author = "Claudia {\'A}lvarez and David Urbano",
language = "American English",
journal = "Revista de Ciencias Sociales",
publisher = "Universidad del Zulia",
Álvarez, C & Urbano, D 2013, 'Cultural diversity and entrepreneurial activity', Revista de Ciencias Sociales, pp. 154-169. <https://www.scopus.com/inward/record.uri?partnerID=HzOxMe3b&scp=84880599695&origin=inward>
Cultural diversity and entrepreneurial activity. / Álvarez, Claudia; Urbano, David.
En: Revista de Ciencias Sociales, 30.07.2013, p. 154-169.
T1 - Cultural diversity and entrepreneurial activity
AU - Álvarez, Claudia
AU - Urbano, David
N2 - The objective of this paper is to analyze the effects of cultural diversity (ethnic, religious and linguistic fragmentation) on entrepreneurial activity. Using data from 39 countries participating in the Global Entrepreneurship Monitor (GEM) for 2008 and using various linear regressions, the importance of ethnic and linguistic over religious fragmentation as conditioning factors for entrepreneurship is demonstrated. In terms of implications, the study permits advancing, on the one hand, in the relationship between informal institutions such as culture and entrepreneurial activity, from the more novel perspective of cultural diversity in the context of institutional theory. Also, the research has some practical implications for policy makers in terms of designing policies and strategies to promote entrepreneurial activity in the current context of globalization, which favors geographical mobility and therefore, cultural diversity.
AB - The objective of this paper is to analyze the effects of cultural diversity (ethnic, religious and linguistic fragmentation) on entrepreneurial activity. Using data from 39 countries participating in the Global Entrepreneurship Monitor (GEM) for 2008 and using various linear regressions, the importance of ethnic and linguistic over religious fragmentation as conditioning factors for entrepreneurship is demonstrated. In terms of implications, the study permits advancing, on the one hand, in the relationship between informal institutions such as culture and entrepreneurial activity, from the more novel perspective of cultural diversity in the context of institutional theory. Also, the research has some practical implications for policy makers in terms of designing policies and strategies to promote entrepreneurial activity in the current context of globalization, which favors geographical mobility and therefore, cultural diversity.
JO - Revista de Ciencias Sociales
JF - Revista de Ciencias Sociales
Álvarez C, Urbano D. Cultural diversity and entrepreneurial activity. Revista de Ciencias Sociales. 2013 jul 30;154-169.


By the 14th century, the construction of sailing ships really began to take off. As countries decided to expand their borders, they needed ships to carry people to distant lands and the ships they had at the time were inadequate. So they began building new types of ships.
The History of Sailing Ships: An interactive tour detailing how sailing ships evolved.
SailHistory: Discusses ships as well as rigging, sails, and anchors.
By the year 1200, most sailing ships had two masts. The main mast was always the tallest and the mast in front of it was known as the foremast. Two-masted ship always had full square rigging, and the masts were known as main-masts and mizzen-masts. Types of two-masted ships include schooners, brigs, and yowls.
Two Masted Ship: The Encyclopedia Britannica has a history of ship development and some information on two-masted ships.
Masts And Rigging: Discusses different types of masts and what rigging they used.
In the 15th century, the Portuguese developed a ship known as the carrack. This ship had a high, rounded stern with specially placed decks: the aftcastle, or upper deck that was positioned behind the mizzenmast and a forecastle; the upper deck that was in front of the mainmast. These ships were considered the first ships truly capable of heavy sailing. They were large enough to be very stable even during terrible weather conditions and they could carry enough provisions to sustain a long voyage. The decks were perfect for placement of guns. They usually weighed around 1000 tons.
The Carrack: All you want to know about carrack ships.
From the 16th to the 18th centuries, the galleon was king of the sea. On a galleon, the forecastle was lowered and the hull was elongated, which made the ship much more stable in the sea. It also made the galleon stronger and faster, because it weighed around 500 tons. Different parts of the ship were often made up of different woods: oak was used for the keel, pine for the masts, and other woods for the hull and decking. Larger galleons required four masts.
Spanish Galleon: Discusses how popular the galleon was for the Spanish and how they used the ships.
After the galleon came the ship-of-the-line. First constructed in the 17th century, they were built all the way through the 19th century. At first they were built to participate in a naval maneuver known as the line of battle, where ships would form a line, end to end, so they could fire from their sides without hitting any friendly ships. These were the largest and most powerful ships of their time. They were square-rigged, usually had three masts and were usually mounted with 50 up to 140 guns. The older ones were two-decker ships but later ships had three or even four decks that could carry many more guns. A typical fleet had 10 to 25 of these types of ships.
Ship-of-the-Line: Has more information about ship-of-the-line as well as specific ships.
All of these types of ships are examples of full-rigged ships. These ships always had three or more masts, each of them square rigged with the sails carried on horizontal spars mounted on the masts. The masts on full-rigged ships, in order of how they were mounted are: the foremast (the second tallest); the mainmast (the tallest); the mizzenmast (third tallest); and if there was a fourth, the jiggermast, which was the smallest. These ships were always divided into upper and lower decks. In addition to being used as warships, full-rigged ships were often used to transport goods.
Full-Rigged Ship: Provides information on full-rigged ships.
Eventually, metal warships were developed and square rigged ships died out. During their time on the seas, these ships were the masters, and many still survive today as a result of boat donations to museums as well as many instances of private boat donation.


Pat Green's new single "Friday's Comin'" isn't about a dog, but he owes the idea to one.
The Texas-born singer-songwriter first came to grips with the song after a (sort of) funny text to his wife, who he was (sort of) keeping a secret from.
"I bought a dog at an auction and I didn't tell my wife," Green divulges to Taste of Country.
"I named the dog Friday and my wife renamed her Divorce," he says, laughing. "My wife is a funny girl. So 'Friday's comin'' is what I said to her in the text and that clicked on the light. I'm like, 'Oh, man, I haven't heard a good weekend-is-coming song in a long time.'"
After his epiphany, Green (who is luckily still married) called on songwriter Zane Williams to flesh out the track. Williams co-wrote Green's No. 1 single "While I Was Away," and he already had the first verse of "Friday's Comin'" written before he met with Green. The duo finished the song in two hours.
Green also notes that production for "Friday's Comin'" was inspired by Eric Church's "Springsteen," a song he's a big fan of.
"Friday's Comin'" will be released to radio on July 23 and is partnered with a Green cover of U2's "Trip Through Your Wires" for digital release on July 20. These small releases are part of Green's plan to continually release new music without necessarily relying on albums.
"The songs are coming faster now, so I want to come out with more," he says. "We've got some new blood in the band and they're younger guys with new songs floating around and the road is a happier place right now. We'll probably release new songs every few months."
These Country Stars Sure Love Their Dogs, Don't They?


text:
Book #3 of Arc of a Scythe
A Different Drummer Books
Another Story Bookshop
Audreys Books Ltd.
Bakka Phoenix Books
Banyen Books
Beggar's Banquet Books
Black Bond Books
Blue Heron Books
Bolen Books
Book Express
BookLore
Books on Beechwood
Bookshelf Café
Brome Lake Books
Bryan Prince
Café Books
Chat Noir Books
Coho Books
Crockett Books
Curiosity House
Epic Books
Fanfare Books
Finchers
Forster's Book Garden
Galiano Island Books
Gulliver's Bookstore
Hager Books
Ivy's Book Shop
La Maison Anglaise
Laughing Oyster Books
Le James McGill University
Let's Talk Books
Librairie Bonder
Librairie Clio
Librairie Paragraphe
Livres Babar
Mabel's Fables
MacNally Robinson
Mill Street Books
Millennia Books
Misty River Books
Mosaic Books
Mulberry Bush Books
Munro's Books
Odyssey Books
Oink! Oink!
Otter Books
Parent Books
Parry Sound Books
Perfect Books
Roxanne's Reflections
Self-Connection Books
Shelf Life Books
Tanner's Books
The Owl's Nest Books & Gifts
The University of Manitoba Bookstore
The Village Bookshop
University of Winnipeg Bookstore
Words Worth
Yellowknife Book Cellar
"A furiously paced finale that reaches for the stars." —Kirkus Reviews
"Gripping." —School Library Journal (starred review)
"Stellar." —Publishers Weekly (starred review)
In the highly anticipated finale to the New York Times bestselling trilogy, dictators, prophets, and tensions rise. In a world that's conquered death, will humanity finally be torn asunder by the immortal beings it created?
Citra and Rowan have disappeared. Endura is gone. It seems like nothing stands between Scythe Goddard and absolute dominion over the world scythedom. With the silence of the Thunderhead and the reverberations of the Great Resonance still shaking the earth to its core, the question remains: Is there anyone left who can stop him?
The answer lies in the Tone, the Toll, and the Thunder.
Get a FREE e-book by joining our mailing list today! Plus, receive recommendations for your next Book Club read.
A Reading Group Guide to
Arc of a Scythe #3: The Toll
In the highly anticipated finale to the New York Times bestselling Arc of a Scythe trilogy, dictators, prophets, and tensions rise. In a world that's conquered death, will humanity finally be torn asunder by the immortal beings it created? Citra and Rowan have disappeared. Endura is gone. It seems like nothing stands between Scythe Goddard and absolute dominion over the world scythedom. With the silence of the Thunderhead and the reverberations of the Great Resonance still shaking the earth to its core, the question remains: Is there anyone left who can stop him? The answer lies in the Tone, the Toll, and the Thunder.
1. In Part One: The Lost Island & The Drowned City, readers learn that Scythe Goddard is not only alive, but has been made High Blade of MidMerica. Based on what you know about him, why is this news incredibly problematic? Think about his previous actions. What do you predict will be the biggest challenges to having him as the Scythe leader?
2. In what ways is the Thunderhead's chosen silence a life-changing event? Can you think of ways the Thunderhead feels its silence will make the world better? Are there ways in which you believe it might make things worse?
3. A former Nimbus agent tells Greyson, "'We've scoured the backbrain, and we've only been able to find a single person who isn't unsavory . . . you.'" Why does learning that Greyson still has the ability to speak to the Thunderhead both frustrate and perplex those who can no longer hear his voice for themselves? Why do you think the Thunderhead has chosen Greyson to be the sole receiver of his messages?
4. Nimbus agents tell Greyson, "'You are a miracle, Greyson. A miracle. Do you know that?'" Greyson replies, "'That's what the Tonists say.'" In your opinion, why do the Tonists believe this to be true? What do you think their intentions are? How does Greyson benefit from his alliance with the Tonists?
5. For the Thunderhead, its awareness comes with a mission, as it sees itself as the servant and protector of humanity. It thinks, "But rarely was the right thing the easy thing." Do you agree with that statement? Is doing the right thing typically difficult? Give an example of your own experiences in your answer. How do you personally navigate being in such a position?
6. The Thunderhead sends nimbus agents like Loriana Barchok an email stating, "I have decided to dissolve the Authority Interface in its entirety. Effective immediately, it shall cease to exist as a managerial entity, and therefore you are released from service." In what ways does losing their jobs impact the agents featured in The Toll? Does their separation from that job benefit them in any way? How did they feel about serving the Thunderhead?
7. Consider the idea of a Great Resonance. What purpose does this ideology serve? In what ways does Greyson play an essential role in the larger context for the Tonist faith? How are the Tonists viewed by the rest of society? Do all Tonists have the same goals or beliefs, and the same methods for reaching or executing them? How do you see Tonists using their faith to impact others?
8. After being kidnapped by Nimbus agents and rescued by Tonists, Greyson states, "'I should go public. Let the world know—but do it on my terms.'" Why do you think Greyson decides to be open about his connection with the Thunderhead? What do you think of his plan? What are the benefits or drawbacks of making such a decision? Explain your answers. What would you do if you were Greyson?
9. Reflect on the global scythe territories' reactions to the announcement and practice of High Blade Goddard's removal of MidMerica's gleaning quotas. Why does having these quotas to regulate and track the number of deaths matter to the other regions? In what ways does Goddard's disregard for Scythe traditions impact them? Do you think they have a responsibility to interfere? What are their motivations for either capitulating or actively pushing back against Goddard's leadership?
10. What is Goddard's true intention behind removing the quota? How does this personal goal challenge his public reasoning for this maneuver? What does this tell you about Goddard and how he uses power?
11. Though Faraday and Munira are grateful for the protection of the island where they land after being shot down, how does this experience of isolation and solitude impact them? How does it affect their relationship?
12. Readers learn that Jeri is from Madagascar, where children are raised genderless and not encouraged to potentially choose a gender until reaching adulthood. Can you think of ways in which this approach benefits individuals? Are there any drawbacks? Consider Jeri's overall role in the novel: What do you think are the most significant ways Jeri impacts the outcome of the story?
13. After Loriana's ship is attacked, all safety pods have been filled, and she manages to save the director, Loriana decides to put her attention into saving herself by swimming to shore. What does this choice and her determination to either make it to shore or drown indicate about her character? Think about the way she describes her former self, and what you've observed in the novel. What are some of the ways in which Loriana changes for the better? In what ways does she prove herself to be a skillful leader? Why do you think she rises to the occasion?
14. Upon her revival, Scythe Possuelo tells Citra, "'You were found sealed in the Vault of Relics and Futures in the arms of the young man who murdered the Grandslayers and thousands of others. The monster who sank Endura.'" How does learning Rowan has been falsely accused and blamed for this tragedy impact Citra? In what other important ways has the world changed over the three years Citra spent at the bottom of the ocean? Can you think of ways this experience might shape her actions moving forward?
15. Scythe Faraday tells Munira, "'The world was no longer supposed to change, Munira. It was a well-oiled machine in sublime perpetual motion.'" Considering what you know about their society, what are the ways in which such a world is problematic? What kinds of issues arise from that kind of temperament? What role does human nature play in the outcome?
16. Consider the ways in which the Thunderhead attempts to protect Greyson. Why do you think it doesn't directly warn Greyson about imminent danger? How might always having a voice in your head giving instructions affect the way you view and experience the world? How might it affect your relationships with others, or even with yourself?
17. In his anger and disbelief after learning that Rowan has been freed, Goddard states to the gathered stadium crowd, "'You! All of you who came here today nurturing a thirst for blood . . . No, Scythe Lucifer is not here today, but YOU, who were so eager to witness the spectacle, are now the object of my eye.'" In what ways does this mass gleaning ordered by Goddard ultimately change his relationships with Scythe Rand and Scythe Constantine? How might it have long-term effects on the scythedom and on society as a whole?
18. The Thunderhead tells Greyson, "'Grief, grief, and more grief! I wish I could have blinded my eyes to it.'" Though the Thunderhead is unable to react to upsetting events, Greyson assures the Thunderhead that he will act for him. Why do you think the Thunderhead instructs him to "continue doing what [he's] been doing"? What does the Thunderhead believe Greyson can accomplish?
19. Tensions rise due to the battle for control led by dictators, prophets, and newfound religious fervor. In a world that's conquered death, do you believe humanity will finally be torn asunder by the immortal beings it created? How has technology aided or hindered progress?
20. Why do you think the Thunderhead kept his end plans a secret for so long? Why is space travel such a game changer in this world? Why might scythes have felt threatened by this type of progress? Can you think of any instances throughout the series where scythes attempted to prevent space-related research and discovery?
21. Consider the dramatic conclusion of The Toll and the Arc of a Scythe trilogy. In your opinion, what did you like best about the story's conclusion? Are there any points you would have changed; if so, which ones? Explain your answers.
1. In The Toll, readers witness a world turned upside down after the Thunderhead chooses to stop speaking and guiding individuals. Do you think this decision is ultimately one that has mankind's best interests in mind? Using textual evidence from The Toll to support your ideas, write a brief letter to the Thunderhead making a case for your position.
2. Throughout The Toll, the scythedom of Texas is painted as an area of rebellious and independent thinkers, disregarding consequences or judgments from outsiders or the other scythedoms. Think about perceptions of the current state of Texas, and how they've proudly claimed to be "like a whole other country." Using library and Internet resources, research the history of Texas's independent spirit, looking for other ways that Texas and its residents prove they do things their own way. Are there any other terms or names from the series that remind you of a real-life counterpart?
3. In your own life, you likely regularly retell your stories using a variety of social media tools. In a small group, select a favorite scene from The Toll, Thunderhead, or Scythe. Using a social media tool (Snapchat, Twitter, or Facebook, for example), retell the selected scene. Alternatively, you can set up a "Fauxbook" profile for a specific character from the Arc of a Scythe trilogy, and create a number of posts as that character during a pivotal scene.
4. In the Arc of a Scythe trilogy, the Thunderhead states, "To deny humanity the lesson of consequences would be a mistake. And I do not make mistakes." Do you agree with this sentiment? In your opinion, why might living with the consequences of choices be critical for individuals as well as society as a whole? In a journal entry, reflect on a personal moment in your past where the consequences of your choices proved to be an important lesson to you.
5. Vigilante justice is popular in film, TV, and books. Compare Rowan's behavior to that of a vigilante character from a different type of medium; consider graphic novels, comics, movies, TV shows, or games. Explore ways in which these characters are similar and how they are different. What is the reception to these vigilante characters? Is one accepted more than the other? Do you think there's a stigma attached to vigilante justice?
6. During a debate, Cirrus tells Astrid, "'For human beings, a balance between altruism and self-care is called for.'" Do you agree or disagree with this idea? List examples from the book or your own life to explain your position. Then work with your classmates to stage a debate to further discuss this statement.
7. As the final novel in the Arc of a Scythe trilogy, The Toll leaves readers with hope and a preview of what may come next for these characters. Using The Toll's closing as a springboard, create an original short story extension that could serve as a bonus chapter or a "where are they now" feature.
The Lexile reading level has been certified by the Lexile developer, MetaMetrics
This guide was created by Dr. Rose Brock, an assistant professor in Library Science Department in the College of Education at Sam Houston State University. Dr. Brock holds a Ph.D. in Library Science, specializing in children's and young adult literature.
(c) Gaby Gerster
Neal Shusterman is the New York Times bestselling author of more than thirty award-winning books for children, teens, and adults, including the Unwind dystology, the Skinjacker trilogy, Downsiders, and Challenger Deep, which won the National Book Award. Scythe, the first book in his latest series, Arc of a Scythe, is a Michael L. Printz Honor Book. He also writes screenplays for motion pictures and television shows. Neal is the father of four, all of whom are talented writers and artists themselves. Visit Neal at StoryMan.com and Facebook.com/NealShusterman.
Publisher: Simon & Schuster Books for Young Readers (November 3, 2020)
Teen Fiction > Action & Adventure
Teen Fiction > Science Fiction
Teen Fiction > Social Themes > Death, Grief, Bereavement
Book Cover Image (jpg): The Toll
Author Photo (jpg): Neal Shusterman
More books from this author: Neal Shusterman
See more by Neal Shusterman
More books in this series: Arc of a Scythe

redpajama_set_name: RedPajamaCommonCrawl


Milk Bands™ nursing bracelet conveniently provides an infant's feeding information to the mother all on one wrist.
By flipping the bracelet inside-out, the mother is reminded which breast to use when starting a feeding session. Each Milk Band reads Right on the inside and Left on the outside.
The Right side's lettering is Raised while the Left side's is Lowered into the band – allowing the mother to know which side to nurse from day or night (by feel)! Included on each bracelet is a time tracking device used to record what time or how long the baby fed.


text:
package com.intellij.psi;

import org.jetbrains.annotations.NotNull;

/**
 * An object that returns annotations for {@link PsiType}. Since computing type annotations might be computationally expensive sometimes,
 * this object is used to delay the calculation until annotations are really needed,
 * and to pass the annotations without calculating them when creating new types based on existing types.
 *
 * @see PsiType#getAnnotationProvider()
 * @see PsiType#PsiType(TypeAnnotationProvider)
 */
public interface TypeAnnotationProvider {
  TypeAnnotationProvider EMPTY = new TypeAnnotationProvider() {
    @Override
    public PsiAnnotation @NotNull [] getAnnotations() {
      return PsiAnnotation.EMPTY_ARRAY;
    }

    @Override
    public String toString() {
      return "EMPTY";
    }
  };

  PsiAnnotation @NotNull [] getAnnotations();

  class Static implements TypeAnnotationProvider {
    private final PsiAnnotation[] myAnnotations;

    private Static(PsiAnnotation[] annotations) {
      myAnnotations = annotations;
    }

    @Override
    public PsiAnnotation @NotNull [] getAnnotations() {
      return myAnnotations;
    }

    @NotNull
    public static TypeAnnotationProvider create(PsiAnnotation @NotNull [] annotations) {
      return annotations.length == 0 ? EMPTY : new Static(annotations);
    }
  }
}

redpajama_set_name: RedPajamaGithub


In Fallen Legion: Sins of an Empire, you take the role of Princess Cecille as you live your life within the kingdom of the Fenumian Empire. One day news reaches you that your father, the king, has passed away. As a result of this, you now ascend as the Queen of the empire. Armed with your Grimoire book and spirit troops you begin to defend your kingdom against the rebellion occurring. Will you be able to defend the kingdom or fall? Find out in our review of Fallen Legion: Sins of an Empire.
For ages, Fenumia has ruled over the vast continent, and now the crown has been passed down to the princess. Among the artifacts of the recently departed king lies a sentient book that holds timeless knowledge and an extraordinary power to breathe life into weaponry.
Guided by this mysterious tome, the unwavering Princess Cecille journeys on a personal quest to restore her kingdom to its former glory in the 2D action-RPG Fallen Legion. As she travels beyond the castle borders, however, she finds nothing is truly as it seems. How far will she go to save her home?
The way the story is told in Fallen Legion: Sins of an Empire is well done. You begin with the present, then your story is retold in past format. You play the game and it unfolds to get to the present and continues on. In addition, this is only 1 part of the story. The 2nd part of the story is a Playstation Vita game titled, Fallen Legion: Flames of Rebellion (which will be the next review coming in the next few days).
Both games tell one narrative which works well. This is different from previous games that have tried this approach and come up short. YummyYummy Tummy took their time to do this, and it shows in their works. The story unfolds and does a good job in this approach.
I have no gripe with this game and its story telling. I can, however, see gamers being disappointed if they own a PS4 but not a Vita, and vice versa. However, I have both devices and I was able to get the full story. I have no issues with this approach, as it gives the developer free range to get their entire story out there across multiple platforms. I also appreciate the fact that YummyYummyTummy has shown love to the Playstation Vita, which it needs.
Intro/Story score: 4/5 – While Fallen Legion's story is well done, it is told across two video games. To get the full experience, you need to play both games. However, if you only play one, you still get a good chunk of the well written and well-done story.
In Fallen Legion: Sins of an Empire, I can honestly say the gameplay is one of the unique styles I have ever seen in a game.
During cutscenes, you get the visual novel aspect the characters in the game are interacting. However, during combat, you get several elements combining into one central element. Your characters run a straight path automatically. During this running, you get hit with several different components.
One component is the actual combat component. You press one of the corresponding buttons to have that unit do their attack. Each unit has their own active time bar until they are allowed to attack again. You, the main character, has their own set of skills. It is their magic attack, a healing magic, and reviving downed allies button. It is not all cut and dry as I laid it out. You have to incorporate a strategy to this, or you will be hit with reality/game over once the game stops holding your hand I would say.
You will find yourself easily slain if you do not use that strategy element. It is rather unique. I do have a negative con on this though. Sometimes too much is going on the screen at once, and you may not keep track of when it is time to attack again. You have to pay attention or not mash the buttons. The game isn't going to let that slide by any means.
Another component is, well it is delivered during the gameplay but not actually interactive, is the story delivery. Your team will run up to a certain point and stop to interact with another main character in the story. You get the story in this aspect then you continue to move on.
Finally, which I consider the most interesting component, is the choice system during the gameplay. Every so often, you are given a scenario and you have to respond with one of three choices during the gameplay within a set period of time. Your choices do matter in this game, so you are given the added pressure of time to make that choice.
This plays into the game's moral system. Sometimes the moral system plays into actual gameplay as an NPC or one of the main characters will stop you on your path of running to let you know if your choice was good or not. You can get rewarded or forced to fight a strong foe once considered an ally. Make your choices wisely.
With minor complaints, I enjoyed the combat immensely. Fallen Legion: Sins of an Empire did something unique in gameplay. It shows a great deal and pays off.
Gameplay score: 4/5 – With very little complaints, Fallen Legion: Sins of an Empire offers one of unique gameplay elements I have ever seen in a video game before.
Visual wise, Fallen Legion: Sins of an Empire looks well. For this type of game, this art style works. It reminds me of Odin Sphere with its visuals, as well as any Vanillaware title. I do not say that lightly. I love the Vanillaware titles, their visuals, and overall presentation of all its elements. Fallen Legion: Sins of an Empire does well here with the visuals.
Audio wise, the game has a very good soundtrack. From the launch trailer, the game was presented with good music. That wonderful soundtrack has carried on into the final product. From the overworld map to any level the music does well. For anyone that has read my reviews, my first asset that I analyze is the soundtrack. If the soundtrack is good, it opens that door. It is not just the soundtrack that opens that door. This game has wonderful sounds and voices.
Audio Score: 5/5 – The soundtrack and all audio in the game work very well.
I would say this game (and series in general) has good replay value. Once again, this is one of two games for one narrative. You need to play both titles. Also, the gameplay itself is very addictive, plus getting the S rank in each level. Also, you have the one life mode which itself is very difficult. Lose that one life and it's all over. There is plenty to do and to have fun with it.
Is this game fun? I can confidently say Fallen Legion: Sins of an Empire is a fun game. It starts easy and the difficulty picks up steam. It keeps you engaged and wanting to keep playing. Even now as I am typing this, I am thinking of going back to play once again. It is one of those rare titles that is fun and just enjoyable. It completes with several AAA games that are fun as well.
Fun Factor: 5/5 – Fallen Legion: Sins of an Empire is a fun game. Developers took the time to make sure it was fun. Not much more to be said.
Fallen Legion: Sins of an Empire is a fantastic gem. There is much to enjoy in this title. I am hoping that this game gets the recognition that it deserves. With all the AAA title games out there, this game is at caliber with most of those titles. I can also say that Fallen Legion: Sins of an Empire is above some of those AAA titles.
In my personal top 5 of this year (so far) this is on that list. With a great story, addictive gameplay, wonderful voice work and soundtrack, and overall fun time Fallen Legion: Sins of an Empire is not a title that should be missed by anyone. The game takes chances with its gameplay system that most titles do not, and it truly pays off for Fallen Legion: Sins of an Empire. Once again, DO NOT MISS THIS TITLE. I was pleasantly surprised playing it and it is still on my mind wanting to do another run through.
Stay tuned for part 2 of this review where we tackle Fallen Legion: Flames of Rebellion, the Playstation Vita counterpart of the story.
Next Super NES Classic is now available for pre-order at Walmart or is it??


Chicago O'Hare Airport is the actual name for the Chicago Airport that is serving the wonderful city of Chicago located in USA. You can avoid all sorts of hassles on your visit to nearby locations with our wide range of car rental services available from best service providers. Another popular name for this airport is Chicago O?Hare International Airport. ORD is the international code name for this airport. It is located in the North west side of the Chicago Loop which is present at a distance of 17 miles. Alternative names for this airport are O'Hare Airport, Chicago Airport, O'Hare Field, and Chicago Airport.
In this airport city, you must visit the Cloud Gate which is actually a bean shaped sculpture that was designed by Anish Kapoor. You must also discover the Chicago Shakespeare Theater located on the Navy Pier. Then you can drive to the Lake Michigan as well as the Millennium Park. The good idea is to rent a car at this airport to have a comfortable drive around. You must also explore the other attractions that are Museum of Science and Industry, Michigan Avenue, Wrigley Field, John Hancock Observatory and the Holy Name Cathedral.
Car rental deals for Chicago Airport starts at ? 17.


text:
The Real Investment Show
Patriotic Millionaires' Debt Solution (1/22/20) - Duration: 10 minutes.
1-22-20 What's It All Mean? (Full Show) - Duration: 53 minutes.
Streamed 15 hours ago
What Terrifies the Fed (1/21/20) - Duration: 11 minutes.
Extreme Deviations & Eventual Outcomes (1/21/20) - Duration: 3 minutes, 53 seconds.
1-21-20 Viruses, Trials, & Markets, O My! (Full Show) - Duration: 53 minutes.
Streamed 1 day ago
Has The Fed Trapped Itself? (1/21/20) - Duration: 24 minutes.
1/17/20 Financial Fitness Friday (Full Show) - Duration: 53 minutes.
Streamed 5 days ago
The Real Investment Show Best of the Week of Jan 13, 2020 - Duration: 3 minutes, 50 seconds.
RIA Advisors 2020 Market & Investment Outlook - Duration: 16 minutes.
The Fed's Monetization of Debt Continues (1/16/20) - Duration: 10 minutes.
1-16-20 China Trade, Impeachment, & Monetization of Debt (Full Show) - Duration: 53 minutes.
If It Walks Like a Duck... (1/15/20) - Duration: 12 minutes.
Confirm Channel Subscription
ChrisMartensondotcom - Channel


American Rivers is pleased to announce this year's list of fishing trips available exclusively for Anglers Fund members to fish with our staff on rivers we have worked. You will have the chance to learn more about how your support is helping to protect and restore important fish habitat while having a great time fishing with us on a beautiful river.
Please let us know the trip(s) that you would like to go on using the contact information below. We will then be in touch on a first-come-first-served basis to explore dates and discuss costs and logistics. We will make every effort to build the trip around your dates and preferences (wade or float, guides or not, etc.), and many trips will sell out.
Thanks for supporting our work through the Anglers Fund and see you on the river!
Fly fishing for native cutthroats in the lesser known rivers near Jackson, WY, that we helped protect as "Wild and Scenic".
Rainbow trout fishing on Washington's blue-ribbon Yakima River where we are protecting the basin's rivers and working to improve flows for fish.
Swing flies for 20-50 pound Chinook salmon fresh from the ocean on remote southern Oregon coastal wild rivers.
Private fishing on the Crystal River near Carbondale, a potential Wild & Scenic River in our "5,000 Miles of Wild" campaign.
Guided float fishing on the Upper Colorado, a focus of the Colorado Water Plan we helped to develop.
Chase rare Shoal Bass in Georgia's Flint River, where our work helps keep water in the river.
Fish for native Brook trout in the rivers in western NC (will require hiking / bushwhacking to get to the stream).
Guided smallmouth or striped bass fishing on either SC's Broad River where we are working to restore flows and fish passage or Saluda River where we have improved water quality.
Sierra trout fishing either to explore Wild and Scenic rivers in/near Yosemite or to fish East Slope streams with a side trip to see our meadow restorations that improve fish habitat and reconnect native Rainbows to their historic spawning habitat.
The timing, itinerary, and costs of the trip(s) will depend upon your accommodation/guide preferences and staff availability and will be finalized with you after receiving input from you and other Anglers Fund members. Note: the costs of the trip can vary greatly depending on your preferences.
Most trips will include dinner discussions on American Rivers' conservation work that improves fish habitat and fishing, focusing on the local rivers you'll be fishing. If there are other rivers we are working on that you would like to fish or if you would like to add other rivers to your trip, we would be glad to help with that planning.
Each Anglers Fund member is invited to bring one paying, non-member spouse or guest, although we hope that all attendees will support our work by joining the Anglers Fund. Trip size is kept small to allow for personal interaction with our staff. You are welcomed to plan additional fishing around the time you'll spend with us, and we will give river/guide recommendations where possible.
Space is limited, and trips will be filled on a first-come-first-served basis. If you have any questions, please call me at 919-720-2901.
Thanks for your interest in our trips and for your support of our work through your ongoing membership in the Anglers Fund.
By joining the Anglers Fund, you will be supporting our conservation efforts that conserve, restore and improve important fish habitat. Help protect and conserve the rivers that you love.


text:
cards and portraits (1)
university of north carolina at greensboro (8)
uncg (4)
illumination of books and manuscripts (2)
illumination of books and manuscripts -- specimens (2)
manuscripts, medieval (2)
manuscripts, medieval -- specimens (2)
army -- army medical specialist corps - diet (1)
troops (1)
oh003 uncg centennial oral history project (5)
oh002 uncg institutional memory collection (2)
fifty original leaves from medieval manuscripts: western europe xii-xvi century ege descriptions (2)
2004-04-15 walnut creek ca (1)
mss264 patricia fairfield-artman oral history collection (1)
wv0028 lucile griffin leonard papers (1)
ege, otto f. (2)
dean, evon (1)
griffin, elizabeth uzzell (1)
hennis, gail (1)
jester, betty brown (1)
sink, mary elizabeth "marilib" (1)
wallerstsein, hilda weil (1)
white, josie nance (1)
adams may lattimore (1)
carlos magana (1)
Description: Distinguished
Oral history interview with May Lattimore Adams and Mary Elizabeth "Marilib" Barwick Sink, 1995 [text/print transcript]
OH002 UNCG Institutional Memory Collection
May Lattimore Adams (1914-2005) graduated in 1935 from the Commercial Program at Woman's College of the University of North Carolina, now The University of North Carolina at Greensboro (UNCG). After graduating, she began a forty-five-year career...
Oral history interview with Hilda Weil Wallerstein, 1991 [text/print transcript]
OH003 UNCG Centennial Oral History Project;
Hilda Weil Wallerstein (1905-1996) graduated in 1926 with a degree in physical education from the North Carolina College for Women, now The University of North Carolina at Greensboro. In 1988, she received the Alumni Distinguished Service Award for...
Oral history interview with Josie Nance "Nancy" White, 2004 [text/print transcript]
MSS264 Patricia Fairfield-Artman Oral History Collection
Josie Nance "Nancy" White (1925-2007) graduated in 1946 from Woman's College of the University of North Carolina, now the University of North Carolina at Greensboro, with a Bachelor of Arts. She received her Master of Education in 1955 from...
Carlos Magana, Walnut Creek CA
2004-04-15 Walnut Creek CA
Hymnal (Hymnaruim). [leaf from Ege medieval manuscripts]
Fifty original leaves from medieval manuscripts: Western Europe XII-XVI century Ege Descriptions
At important festival services such as Christmas and Easter these small hymnals were generally used by the laymen as they walked in procession to the various altars. Much of the material incorporated in the hymnals was based on folk melodies....
Book of Hours (Horæ Beatæ Mariæ Virginis). [leaf from Ege medieval manuscripts]
This manuscript leaf came from a Book of Hours, sold probably at one of the famous shrines to which wealthy laymen made pilgrimages. To meet the demand for these books, the monastic as well as the secular scribes produced them in great numbers. The...
Oral history interview with Evon Dean, 1990 [text/print transcript]
OH003 UNCG Centennial Oral History Project
Evon Welch Dean (1924-2011) graduated from the Woman's College of the University of North Carolina, now The University of North Carolina at Greensboro, in 1942 with a commercial degree. She became the administrative assistant to the alumni...
Oral history interview with Elizabeth Uzzell Griffin, 1991 [text/print transcript]
Elizabeth Uzzell Griffin (1917-2006) graduated in 1938 from the Woman's College of the University of North Carolina, now The University of North Carolina at Greensboro. She was an art major and received the Alumni Distinguished Service Award in...
Oral history interview with Gail Hennis, 1990 [text/print transcript]
Gail Hennis (1921-2002) came to Woman's College of the University of North Carolina, now The University of North Carolina at Greensboro (UNCG), in 1950 as an instructor in the Department of Physical Education. She retired in 1986 as professor and...
Oral history interview with Betty Brown Jester, 1990 [text/print transcript]
Betty Brown Jester (1910-1994) was a member of the Class of 1931 of the North Carolina College for Women, now The University of North Carolina at Greensboro. She was manager of the bookstore from 1931-1945, Alumnae Association President in 1947,...
Oral history interview with Sue Sigmon Williams
Sue Sigmon Williams was born in Lincolnton, NC in 1937, but grew up in Charlotte NC, attending Harding High School. She attended the Woman's College of the University of North Carolina, graduating in 1958, with a BA in English. Williams later...
[Army dietitian olive drab uniform, circa 1943]
WV0028 Lucile Griffin Leonard Papers
U.S. Army hospital dietitian olive drab jacket and long skirt." In 1942 dietitians became part of the army's Medial Department and were eligible to wear standard army or army nurse uniforms. In 1943 a pair of caducei with the initials "HD" was...


The DKN AM-3i Exercise Bike offers great quality and a very nice design for a really good price. The DKN AM-3i comes with the new Bluetooth 4.0, allowing you to connect your iPhone, iPad, smartphone or tablet and use training apps. With its 11kg flywheel, your pedaling will be smooth and silent. For this price, this stationary bikes comes as a good surprise from DKN for 2017.
The DKN AM-3i Exercise Bike with Bluetooth is the Newcomer 2017!


text:
Home > Research > Housing Economics > Construction Statistics > National > Framing Lumber Prices
Starts and Permits
Framing Lumber Prices
New and Existing Home Sales Reports
Weekly Mortgage Rates 15 and 30 Year
The prices listed below provide an overview of the behaviors within the U.S. framing lumber pricing market. The information is sourced each week using the Random Lengths Framing Lumber Composite, which is comprised using prices from the highest volume-producing regions of the U.S. and Canada.
Date - Random Lengths Composite Price - CME Futures Price - Contract Delivery Date
May 27 - $357 – 308.5
May 20 - $360 - $310.1 - July 2016
May 13 - $359 - $310.9
May 6 - $353 - $297.9
Apr. 29 - $350 - $300.1
Apr. 15 - $346 – $288.6
Apr. 8 - $347 – $291.9
Apr. 1 - $345 - $310.7
Mar. 25 - $340 - $297.8
Mar. 18 - $332 - $297.0 May 2016
Mar. 4 - $316 - $270.9
Feb. 26 - $315 - $258.9
Feb. 5 - $309 - $251.7
Jan. 29 - $305 - $240.9
Jan. 22 - $308 - $241.4 March 2016
Jan. 8 - $320 - $250.6
Dec. 31 - $320 - $258.8
Dec. 4 - $312 - $246.5
Nov. 25 - $315 - $247.3
Nov. 20 - $316 - $245.6 - January 2016
Nov. 6 - $331 - $250.0
Oct. 30 - $330 - $255.9
Oct. 16 - $316 - $260.70
Oct. 9 - $305 - $238
Oct. 2 - $299 - $224.60
Sept. 25 - $297 - $217.0
Sep. 11 - $294 - $242.2
Sep. 4 - $298 - $227.4
Aug. 28 - $309 - $229.5
Aug. 7 - $329 - $256.5
July 31 - $332 - $250.7
July 24 - $340 - $270.9 - November 2015
July 2 - $349 - $285.3
June 26 - $348 - $292.8
June 5 - $322 - $281.1
May 22 - $312 - $269.0 - September 2015
April 27 - $327 - $248.8
April 3 - $337 - $273.5
March 27 - $336 - $284.0
March 13 - $335 - $279.2 - July 2015
March 6 - $341 - $286.8
Jan. 30 - $362 - $321.8 - May 2015
Dec. 5 - $366 - $334.0 - March 2015
Oct. 3 - $381 - $347.0 - January 2015
Aug. 1 - $385 - $328.5 - November 2014
Jul. 25 - $384 - $325.4
Jul. 3 - $377 - $337.8
Jun. 27 - $377 - $340.2
Jun. 13 - $371 - $300.2 - September 2014
Jun. 6 - $375 - $306.3
Apr. 25 - $365 - $327.6 - July 2014
Mar. 7 - $388 - $355.7 - May 2014
Jan. 17 - $400 - $366.7 - March 2014
Oct. 4 - $384 - $334.0
Sep. 20 - $373 - $354.3 - November 2013
July 19 - $346 - $331.5 - September 2013
March 22 - $441 - $386.3 - May 2013
Feb. 1 - $387 - $352.7 - March 2013
Sept. 21 - $329 - $277.9 - November 2012
Sept. 7 - $341 - $286.0
Aug .3 - $330 - $286.4
Source: Random Lengths (Please note that Random Lengths is not affiliated with NAHB.)


The head of the International Organization for Migration (IOM) mission to Iraq, Gerard Witt, said on Sunday that the reconstruction of the liberated cities was a major reason for ending the displacement.
"The Minister of Displacement and Migration Nawal Bahaa Mousa today met with the head of the International Organization for Migration (IOM) mission to Iraq, Gerard Witte, and his delegation at the ministry's headquarters in Baghdad. They discussed the two sides on the issue of displacement, return and role," his office said in a statement. Organizations in supporting these two files ".
Moussa said that "the joint cooperation between the government represented by the Ministry of Displacement and Migration and international and local organizations is the best way to improve the situation of displaced families and provide the best services through the reconstruction of their liberated cities and the delivery of services and assistance to them and to encourage them to return to their original areas of housing, "The editor is the main reason for the return of all displaced families and the end of the file of displacement by ensuring a decent living and return with dignity."
He added that "the ministry has been able to return the return of those who want to return from neighboring countries voluntarily and free," adding that "the ministry was able over the past two years to return thousands of Iraqis in neighboring countries, especially from the Republic of Turkey and the Kingdom of Jordan and the Syrian Arab Republic."
For his part, Witt thanked "the minister and the ministry for embracing the affected segment of the categories of care and filling all their needs and provide the necessary support for them," congratulating him at the same time "on the occasion of assuming the position of the ministry."
"The International Organization for Migration (IOM) is a key partner of the government in general and the ministry in particular, and it is keen to provide the necessary needs of displaced people as well as follow up their return and implement some projects that are part of the campaign to rebuild liberated cities," he said.


Home (London / KSS) Trainee School of Medicine Chief Registrars How do I apply for the Chief Registrar post and find the advert, application form, person specification and job description?
How do I apply for the Chief Registrar post and find the advert, application form, person specification and job description?
Please log into synapse to view the advert, job description and person specification. These documents can be found under Schools & Organisations, London and KSS Specialty Schools of Medicine. You will also find the link to the online application form. Alternatively the link is here.
Am I eligible to apply for the South London Chief Registrar posts?
I'm not on a South London training scheme, am I eligible to apply?


text:
Column: Foreign investors are snapping up US land … but exactly how much, who knows?
by Dave Dickey, Columnist September 21, 2022 January 20, 2023
Anybody who has kept an eye on agricultural doings knows that consolidation is occurring at an alarming rate. In the past couple of decades, competition between agricultural giants has become a fading memory. Even this short list is staggering:
China's WH Group purchased Smithfield Foods – the largest producer of U.S. pork – in 2013 for a steal-of-a-deal $4.7 billion.
Brazilian meat-producer JBS purchased a majority stake in Pilgrim's Pride for $800 million in 2009.
German pharmaceutical Bayer AG purchased St. Louis-based Monsanto for $63 billion in 2018.
ChemChina purchased Swiss-based seed and herbicide producer Syngenta for $43 billion in 2017. At the time, Syngenta owned a number of U.S. seed and chemical companies that accounted for roughly 6 percent of soybean seed sales and 10 percent of corn seed sales.
What do all these splashy headline acquisitions have in common? All are foreign acquisitions of U.S. companies. All well reported and documented.
It isn't just U.S. corporations that foreign companies are snapping up like Kmart Blue Light specials. Foreign acquisition of U.S. farmland has become big business. And the federal government's tally likely suffers from a huge undercount due to a joke of a law.
The Agriculture Foreign Investment Disclosure Act was passed in 1978 to keep track of foreign land acquisition of U.S. farmland. AFIDA requires:
Foreign persons who acquire, transfer, or hold interests in agricultural land to report the transactions and holdings to the Secretary of Agriculture.
USDA's Farm Service Agency to maintain for public inspection all reporting forms and related correspondence.
Penalties to be assessed against foreign persons who fail to accurately and timely report.
Foreign entities acquiring at least a 10% interest in U.S. agricultural land (defined as a minimum of 10 acres or land capable of producing annual revenue of $1,000 or more from farming) are required to file with USDA a FSA-153 form, which lists among other things the type of owners, total acreage, value of the land, and its geographical location.
Due to either neglect or intentional misdirection of filers, many records are inaccurate or incomplete.
USDA has no interest or desire to monitor what's going on. Back in 2017, AFIDA program manager Lesa Johnson made the stunning admission that USDA does not review FSA-153s for completeness or accuracy. Not much has changed since then.
In its latest 2020 report, FSA says foreign interests held an interest in 2.9% of all privately held U.S. agricultural land. That's 37.6 million acres, more than all the acres in the state of Iowa. Since 2015, foreign holdings have increased annually by an average of nearly 2.2 million acres.
And remember, the true numbers are likely higher – perhaps much higher.
Why should the public care about this?
The 2017 Census of Agriculture reported the average age of U.S. farmers was 57.5. That's almost 10 years older than reported in the 1945 Census. Meanwhile, it's become cost-prohibitive for many young people interested in farming to enter the industry. Not to mention that U.S. agricultural land slowly has been dwindling due in large part to industrialization and urbanization – from more than 1.15 billion acres in 1950 to 895 million acres in 2021.
So you have an aging farmer population that one day in the not-too-distant future will exit farming in droves and younger want-to-be-farmers unable to come up with the capital to buy farmland. The National Young Farmers Coalition is predicting two-thirds of all U.S. farmland will be on the auction block over the next decade.
Foreign entities are all too happy to take advantage of the opportunity … all under the less than watchful eye of USDA.
Admittedly, on a macro scale foreign U.S. land acquisitions do not currently threaten food security, which among our nation's families is primarily driven by poverty.
But what happens in the future if foreign investors continue to buy more farmland? Not to mention a bunch of other interests including U.S. corporation funds, pension funds, land development companies, and wealthy investors also wanting to own farmland.
The feds need to consider all these threats to long-term food security. And that starts with a full understanding of the scope of the problem including foreign land acquisition.
Efforts in the past to strengthen or rewrite AFIDA have gone nowhere in Congress.
Last month, Wisconsin Democrat Sen. Tammy Baldwin and Iowa Republican Sen. Chuck Grassley introduced the Farmland Security Act. The act would require USDA to report to Congress foreign investments of farm land, including analysis of the impact on food supply, rural communities and family farms. USDA also would be required to establish a real-time database as foreign farmland acquisitions are filed. While the bill is not perfect, passage would be a step in the right direction.
About Dave Dickey
Dave Dickey
Dickey spent nearly 30 years at University of Illinois at Urbana-Champaign's NPR member station WILL-AM 580 where he won a dozen Associated Press awards for his reporting. For 13 years, he directed Illinois Public Media's agriculture programming. His weekly column for Investigate Midwest covers agriculture and related issues including politics, government, environment and labor. His opinions are his own and do not reflect Investigate Midwest. Email him at dave.dickey@investigatemidwest.org.


Check out full gallery with 12 pictures of Laura Crane. Only high quality pics and photos with Laura Crane. Last update date: 2018-08-09.
Photogallery of Laura Crane updates weekly. We update gallery with only quality interesting photos. If you have good quality pics of Laura Crane, you can add them to Photo-forum. Good photos will be added to photogallery.


text:
"""Implements spectral biclustering algorithms.

Authors : Kemal Eren
License: BSD 3 clause

"""
from abc import ABCMeta, abstractmethod

import numpy as np

from scipy.sparse import dia_matrix
from scipy.sparse import issparse

from sklearn.base import BaseEstimator, BiclusterMixin
from sklearn.externals import six
from sklearn.utils.arpack import svds
from sklearn.utils.arpack import eigsh
from sklearn.cluster import KMeans
from sklearn.cluster import MiniBatchKMeans

from sklearn.utils.extmath import randomized_svd
from sklearn.utils.extmath import safe_sparse_dot
from sklearn.utils.extmath import make_nonnegative
from sklearn.utils.extmath import norm

from sklearn.utils.validation import assert_all_finite
from sklearn.utils.validation import check_array

from .utils import check_array_ndim

def _scale_normalize(X):
    """Normalize ``X`` by scaling rows and columns independently.

    Returns the normalized matrix and the row and column scaling
    factors.

    """
    X = make_nonnegative(X)
    row_diag = np.asarray(1.0 / np.sqrt(X.sum(axis=1))).squeeze()
    col_diag = np.asarray(1.0 / np.sqrt(X.sum(axis=0))).squeeze()
    row_diag = np.where(np.isnan(row_diag), 0, row_diag)
    col_diag = np.where(np.isnan(col_diag), 0, col_diag)
    if issparse(X):
        n_rows, n_cols = X.shape
        r = dia_matrix((row_diag, [0]), shape=(n_rows, n_rows))
        c = dia_matrix((col_diag, [0]), shape=(n_cols, n_cols))
        an = r * X * c
    else:
        an = row_diag[:, np.newaxis] * X * col_diag
    return an, row_diag, col_diag

def _bistochastic_normalize(X, max_iter=1000, tol=1e-5):
    """Normalize rows and columns of ``X`` simultaneously so that all
    rows sum to one constant and all columns sum to a different
    constant.

    """
    # According to paper, this can also be done more efficiently with
    # deviation reduction and balancing algorithms.
    X = make_nonnegative(X)
    X_scaled = X
    dist = None
    for _ in range(max_iter):
        X_new, _, _ = _scale_normalize(X_scaled)
        if issparse(X):
            dist = norm(X_scaled.data - X.data)
        else:
            dist = norm(X_scaled - X_new)
        X_scaled = X_new
        if dist is not None and dist < tol:
            break
    return X_scaled

def _log_normalize(X):
    """Normalize ``X`` according to Kluger's log-interactions scheme."""
    X = make_nonnegative(X, min_value=1)
    if issparse(X):
        raise ValueError("Cannot compute log of a sparse matrix,"
                         " because log(x) diverges to -infinity as x"
                         " goes to 0.")
    L = np.log(X)
    row_avg = L.mean(axis=1)[:, np.newaxis]
    col_avg = L.mean(axis=0)
    avg = L.mean()
    return L - row_avg - col_avg + avg

class BaseSpectral(six.with_metaclass(ABCMeta, BaseEstimator,
                                      BiclusterMixin)):
    """Base class for spectral biclustering."""

    @abstractmethod
    def __init__(self, n_clusters=3, svd_method="randomized",
                 n_svd_vecs=None, mini_batch=False, init="k-means++",
                 n_init=10, n_jobs=1, random_state=None):
        self.n_clusters = n_clusters
        self.svd_method = svd_method
        self.n_svd_vecs = n_svd_vecs
        self.mini_batch = mini_batch
        self.init = init
        self.n_init = n_init
        self.n_jobs = n_jobs
        self.random_state = random_state

    def _check_parameters(self):
        legal_svd_methods = ('randomized', 'arpack')
        if self.svd_method not in legal_svd_methods:
            raise ValueError("Unknown SVD method: '{0}'. svd_method must be"
                             " one of {1}.".format(self.svd_method,
                                                   legal_svd_methods))

    def fit(self, X):
        """Creates a biclustering for X.

        Parameters
        ----------
        X : array-like, shape (n_samples, n_features)

        """
        X = check_array(X, accept_sparse='csr', dtype=np.float64)
        check_array_ndim(X)
        self._check_parameters()
        self._fit(X)

    def _svd(self, array, n_components, n_discard):
        """Returns first `n_components` left and right singular
        vectors u and v, discarding the first `n_discard`.

        """
        if self.svd_method == 'randomized':
            kwargs = {}
            if self.n_svd_vecs is not None:
                kwargs['n_oversamples'] = self.n_svd_vecs
            u, _, vt = randomized_svd(array, n_components,
                                      random_state=self.random_state,
                                      **kwargs)

        elif self.svd_method == 'arpack':
            u, _, vt = svds(array, k=n_components, ncv=self.n_svd_vecs)
            if np.any(np.isnan(vt)):
                # some eigenvalues of A * A.T are negative, causing
                # sqrt() to be np.nan. This causes some vectors in vt
                # to be np.nan.
                _, v = eigsh(safe_sparse_dot(array.T, array),
                             ncv=self.n_svd_vecs)
                vt = v.T
            if np.any(np.isnan(u)):
                _, u = eigsh(safe_sparse_dot(array, array.T),
                             ncv=self.n_svd_vecs)

        assert_all_finite(u)
        assert_all_finite(vt)
        u = u[:, n_discard:]
        vt = vt[n_discard:]
        return u, vt.T

    def _k_means(self, data, n_clusters):
        if self.mini_batch:
            model = MiniBatchKMeans(n_clusters,
                                    init=self.init,
                                    n_init=self.n_init,
                                    random_state=self.random_state)
        else:
            model = KMeans(n_clusters, init=self.init,
                           n_init=self.n_init, n_jobs=self.n_jobs,
                           random_state=self.random_state)
        model.fit(data)
        centroid = model.cluster_centers_
        labels = model.labels_
        return centroid, labels

class SpectralCoclustering(BaseSpectral):
    """Spectral Co-Clustering algorithm (Dhillon, 2001).

    Clusters rows and columns of an array `X` to solve the relaxed
    normalized cut of the bipartite graph created from `X` as follows:
    the edge between row vertex `i` and column vertex `j` has weight
    `X[i, j]`.

    The resulting bicluster structure is block-diagonal, since each
    row and each column belongs to exactly one bicluster.

    Supports sparse matrices, as long as they are nonnegative.

    Parameters
    ----------
    n_clusters : integer, optional, default: 3
        The number of biclusters to find.

    svd_method : string, optional, default: 'randomized'
        Selects the algorithm for finding singular vectors. May be
        'randomized' or 'arpack'. If 'randomized', use
        :func:`sklearn.utils.extmath.randomized_svd`, which may be faster
        for large matrices. If 'arpack', use
        :func:`sklearn.utils.arpack.svds`, which is more accurate, but
        possibly slower in some cases.

    n_svd_vecs : int, optional, default: None
        Number of vectors to use in calculating the SVD. Corresponds
        to `ncv` when `svd_method=arpack` and `n_oversamples` when
        `svd_method` is 'randomized`.

    mini_batch : bool, optional, default: False
        Whether to use mini-batch k-means, which is faster but may get
        different results.

    init : {'k-means++', 'random' or an ndarray}
         Method for initialization of k-means algorithm; defaults to
         'k-means++'.

    n_init : int, optional, default: 10
        Number of random initializations that are tried with the
        k-means algorithm.

        If mini-batch k-means is used, the best initialization is
        chosen and the algorithm runs once. Otherwise, the algorithm
        is run for each initialization and the best solution chosen.

    n_jobs : int, optional, default: 1
        The number of jobs to use for the computation. This works by breaking
        down the pairwise matrix into n_jobs even slices and computing them in
        parallel.

        If -1 all CPUs are used. If 1 is given, no parallel computing code is
        used at all, which is useful for debugging. For n_jobs below -1,
        (n_cpus + 1 + n_jobs) are used. Thus for n_jobs = -2, all CPUs but one
        are used.

    random_state : int seed, RandomState instance, or None (default)
        A pseudo random number generator used by the K-Means
        initialization.

    Attributes
    ----------
    `rows_` : array-like, shape (n_row_clusters, n_rows)
        Results of the clustering. `rows[i, r]` is True if
        cluster `i` contains row `r`. Available only after calling ``fit``.

    `columns_` : array-like, shape (n_column_clusters, n_columns)
        Results of the clustering, like `rows`.

    `row_labels_` : array-like, shape (n_rows,)
        The bicluster label of each row.

    `column_labels_` : array-like, shape (n_cols,)
        The bicluster label of each column.

    References
    ----------

    * Dhillon, Inderjit S, 2001. `Co-clustering documents and words using
      bipartite spectral graph partitioning
      <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.140.3011>`__.

    """
    def __init__(self, n_clusters=3, svd_method='randomized',
                 n_svd_vecs=None, mini_batch=False, init='k-means++',
                 n_init=10, n_jobs=1, random_state=None):
        super(SpectralCoclustering, self).__init__(n_clusters,
                                                   svd_method,
                                                   n_svd_vecs,
                                                   mini_batch,
                                                   init,
                                                   n_init,
                                                   n_jobs,
                                                   random_state)

    def _fit(self, X):
        normalized_data, row_diag, col_diag = _scale_normalize(X)
        n_sv = 1 + int(np.ceil(np.log2(self.n_clusters)))
        u, v = self._svd(normalized_data, n_sv, n_discard=1)
        z = np.vstack((row_diag[:, np.newaxis] * u,
                       col_diag[:, np.newaxis] * v))

        _, labels = self._k_means(z, self.n_clusters)

        n_rows = X.shape[0]
        self.row_labels_ = labels[:n_rows]
        self.column_labels_ = labels[n_rows:]

        self.rows_ = np.vstack(self.row_labels_ == c
                               for c in range(self.n_clusters))
        self.columns_ = np.vstack(self.column_labels_ == c
                                  for c in range(self.n_clusters))

class SpectralBiclustering(BaseSpectral):
    """Spectral biclustering (Kluger, 2003).

    Partitions rows and columns under the assumption that the data has
    an underlying checkerboard structure. For instance, if there are
    two row partitions and three column partitions, each row will
    belong to three biclusters, and each column will belong to two
    biclusters. The outer product of the corresponding row and column
    label vectors gives this checkerboard structure.

    Parameters
    ----------
    n_clusters : integer or tuple (n_row_clusters, n_column_clusters)
        The number of row and column clusters in the checkerboard
        structure.

    method : string, optional, default: 'bistochastic'
        Method of normalizing and converting singular vectors into
        biclusters. May be one of 'scale', 'bistochastic', or 'log'.
        The authors recommend using 'log'. If the data is sparse,
        however, log normalization will not work, which is why the
        default is 'bistochastic'. CAUTION: if `method='log'`, the
        data must not be sparse.

    n_components : integer, optional, default: 6
        Number of singular vectors to check.

    n_best : integer, optional, default: 3
        Number of best singular vectors to which to project the data
        for clustering.

    svd_method : string, optional, default: 'randomized'
        Selects the algorithm for finding singular vectors. May be
        'randomized' or 'arpack'. If 'randomized', uses
        `sklearn.utils.extmath.randomized_svd`, which may be faster
        for large matrices. If 'arpack', uses
        `sklearn.utils.arpack.svds`, which is more accurate, but
        possibly slower in some cases.

    n_svd_vecs : int, optional, default: None
        Number of vectors to use in calculating the SVD. Corresponds
        to `ncv` when `svd_method=arpack` and `n_oversamples` when
        `svd_method` is 'randomized`.

    mini_batch : bool, optional, default: False
        Whether to use mini-batch k-means, which is faster but may get
        different results.

    init : {'k-means++', 'random' or an ndarray}
         Method for initialization of k-means algorithm; defaults to
         'k-means++'.

    n_init : int, optional, default: 10
        Number of random initializations that are tried with the
        k-means algorithm.

        If mini-batch k-means is used, the best initialization is
        chosen and the algorithm runs once. Otherwise, the algorithm
        is run for each initialization and the best solution chosen.

    n_jobs : int, optional, default: 1
        The number of jobs to use for the computation. This works by breaking
        down the pairwise matrix into n_jobs even slices and computing them in
        parallel.

        If -1 all CPUs are used. If 1 is given, no parallel computing code is
        used at all, which is useful for debugging. For n_jobs below -1,
        (n_cpus + 1 + n_jobs) are used. Thus for n_jobs = -2, all CPUs but one
        are used.

    random_state : int seed, RandomState instance, or None (default)
        A pseudo random number generator used by the K-Means
        initialization.

    Attributes
    ----------
    `rows_` : array-like, shape (n_row_clusters, n_rows)
        Results of the clustering. `rows[i, r]` is True if
        cluster `i` contains row `r`. Available only after calling ``fit``.

    `columns_` : array-like, shape (n_column_clusters, n_columns)
        Results of the clustering, like `rows`.

    `row_labels_` : array-like, shape (n_rows,)
        Row partition labels.

    `column_labels_` : array-like, shape (n_cols,)
        Column partition labels.

    References
    ----------

    * Kluger, Yuval, et. al., 2003. `Spectral biclustering of microarray
      data: coclustering genes and conditions
      <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.135.1608>`__.

    """
    def __init__(self, n_clusters=3, method='bistochastic',
                 n_components=6, n_best=3, svd_method='randomized',
                 n_svd_vecs=None, mini_batch=False, init='k-means++',
                 n_init=10, n_jobs=1, random_state=None):
        super(SpectralBiclustering, self).__init__(n_clusters,
                                                   svd_method,
                                                   n_svd_vecs,
                                                   mini_batch,
                                                   init,
                                                   n_init,
                                                   n_jobs,
                                                   random_state)
        self.method = method
        self.n_components = n_components
        self.n_best = n_best

    def _check_parameters(self):
        super(SpectralBiclustering, self)._check_parameters()
        legal_methods = ('bistochastic', 'scale', 'log')
        if self.method not in legal_methods:
            raise ValueError("Unknown method: '{0}'. method must be"
                             " one of {1}.".format(self.method, legal_methods))
        try:
            int(self.n_clusters)
        except TypeError:
            try:
                r, c = self.n_clusters
                int(r)
                int(c)
            except (ValueError, TypeError):
                raise ValueError("Incorrect parameter n_clusters has value:"
                                 " {}. It should either be a single integer"
                                 " or an iterable with two integers:"
                                 " (n_row_clusters, n_column_clusters)")
        if self.n_components < 1:
            raise ValueError("Parameter n_components must be greater than 0,"
                             " but its value is {}".format(self.n_components))
        if self.n_best < 1:
            raise ValueError("Parameter n_best must be greater than 0,"
                             " but its value is {}".format(self.n_best))
        if self.n_best > self.n_components:
            raise ValueError("n_best cannot be larger than"
                             " n_components, but {} >  {}"
                             "".format(self.n_best, self.n_components))

    def _fit(self, X):
        n_sv = self.n_components
        if self.method == 'bistochastic':
            normalized_data = _bistochastic_normalize(X)
            n_sv += 1
        elif self.method == 'scale':
            normalized_data, _, _ = _scale_normalize(X)
            n_sv += 1
        elif self.method == 'log':
            normalized_data = _log_normalize(X)
        n_discard = 0 if self.method == 'log' else 1
        u, v = self._svd(normalized_data, n_sv, n_discard)
        ut = u.T
        vt = v.T

        try:
            n_row_clusters, n_col_clusters = self.n_clusters
        except TypeError:
            n_row_clusters = n_col_clusters = self.n_clusters

        best_ut = self._fit_best_piecewise(ut, self.n_best,
                                           n_row_clusters)

        best_vt = self._fit_best_piecewise(vt, self.n_best,
                                           n_col_clusters)

        self.row_labels_ = self._project_and_cluster(X, best_vt.T,
                                                     n_row_clusters)

        self.column_labels_ = self._project_and_cluster(X.T, best_ut.T,
                                                        n_col_clusters)

        self.rows_ = np.vstack(self.row_labels_ == label
                               for label in range(n_row_clusters)
                               for _ in range(n_col_clusters))
        self.columns_ = np.vstack(self.column_labels_ == label
                                  for _ in range(n_row_clusters)
                                  for label in range(n_col_clusters))

    def _fit_best_piecewise(self, vectors, n_best, n_clusters):
        """Find the ``n_best`` vectors that are best approximated by piecewise
        constant vectors.

        The piecewise vectors are found by k-means; the best is chosen
        according to Euclidean distance.

        """
        def make_piecewise(v):
            centroid, labels = self._k_means(v.reshape(-1, 1), n_clusters)
            return centroid[labels].ravel()
        piecewise_vectors = np.apply_along_axis(make_piecewise,
                                                axis=1, arr=vectors)
        dists = np.apply_along_axis(norm, axis=1,
                                    arr=(vectors - piecewise_vectors))
        result = vectors[np.argsort(dists)[:n_best]]
        return result

    def _project_and_cluster(self, data, vectors, n_clusters):
        """Project ``data`` to ``vectors`` and cluster the result."""
        projected = safe_sparse_dot(data, vectors)
        _, labels = self._k_means(projected, n_clusters)
        return labels