The book I review today is an excellent one on history, geography and sustainable development. Dr. Jared Diamond's idea when writing it was to compile facts and figures about societies' collapses and failures.
This is done in order to allow us not to repeat the same mistakes done by the Maya, the Vikings in Greenland and many ancient civilizations that ended dramatically.
During nearly 600 pages, the author gives an impressive class on those civilizations and why they failed and died. The last part of Collapse is dedicated to how WE can avoid big problems in the very next decades. Perhaps the best book I read this year.
During most of this bestseller, the author puts a lot of emphasis on how ancient societies disappeared. The environmental issues were important but do not explain everything.
Indeed in Greenland, two societies were present. One disappeared (the Vikings) when the other (the Inuits) survived.
But Diamond also tackles extensively some ancient civilizations which ultimately succeeded in managing their problems in a right way and thus gives us hope. If New Guinea, Japan and the island of Tikopia succeeded, why couldn't we ?
(…) deforestation and habitat destruction, soil problems (erosion, salinization, and soil fertility losses), water management problems, overhunting, overfishing, effects of introduced species on native species, human population growth, and increased per-capita impact of people.
To Diamond, even if we solved eleven of those issues, the twelfth could still consist failure and thus collapse. But most problems are intertwined, so solving one would help in solving others. As an example, afforesting can help in preventing soil and water problems.
Even if the book is quite pessimistic as it shows many powerful societies that died out, there is a lot of hope as solutions exists.
As an example, the Dominican Republic succeeded in recent history to solve its problem when Haiti failed on the same island.
Diamond works show that troubles generally arise from massive tree cutting with soil erosion and so on.
Respecting nature is respecting Mankind and thus allow us to make money now and tomorrow. Not respecting it might indeed allow businesses and people to profit in a huge way now but will mortgage our future.
If no drastic changes toward sustainability were done fast, trouble would arise or already arose. Some countries are already at risk but with globalization, they would quickly arrive at our doorstep. As Viking Greenland history showed, the people at the highest level of the ladder just earned themselves the right to be the last to die of starvation.
So, sustainability is not something for rich and well fed people but also for the poor and starving ones as if they don't protect a minimum the scarce resources they have, they will make matters worse in the short run. Something like this happened in Rwanda and Somalia in the 1990s.
This is why people in India and in many other countries are afforesting and protecting their natural assets now (see the article of Tuesday on afforestation).
It is often said that large companies do not care about the environment and people. But it is not always the case as Dr. Diamond shows. Some large companies already moved toward sustainability on a local or global scale and thus minimized the impacts of their actions on the environment.
Those companies understood all to clearly that if they want to remain profitable in the long run they have to manage in a sustainable way the resources they are using and will use in 10 or 30 years from now.
The author has been working with both environmentalists and large companies and thus can provide insight from both.
The last two chapters provide most interesting data as it explains that we are the basis of the system and how we can act on companies and countries. South Africa stopped apartheid because of massive boycott.
Both bottom up and top down management systems are effective. This means that governments can work on a cleaner environment but we, as individuals, have to act in a sustainable way too.
Dr. Diamond also gives some hints how people like you and I can act and make a huge change on Earth and Mankind's future.
Among these advices are voting or buying or not buying some products, two examples of bottom up solutions.
Furthermore, some arguments that are heard from sceptical people are tackled in a great way. The author thus shows the gravity of the current situation and also explains why people who think sustainable development is a luxury we can't afford are wrong.
At the end of the book, one can find a huge further reading section as well as an index. So even when you think you have read the book, you can go further in depth in the topics that interested you. A great idea.
Collapse explains in plain English the tenets of Sustainable Development and a lot much more. Just for this, I believe it should be mandatory reading in each family.
On top of that, the book is extremely interesting and extensively panoramic. It gives thousands of interesting facts on societies coming from the almost all regions of the world.
Dr. Jared Diamond's previous book, "Guns, Germs, and Steel" won the Pulitzer Prize and I will probably read and review it. This sheer genius speaks a dozen languages, is a teacher at UCLA and provides here a great History class for a ridiculously low price.
Dr. Diamond's pages at the Lavin Agency and at the UCLA Department of Geography.
Merci Edouard, ca a l'air intéressant, je viens de l'ajouter à ma liste de trucs à lire!
I remember having to watch Jared Diamond videos in history class. I always left impressed with his theories, and once again I am impressed. He seems to summed it up nicely.
We really do have a lot to worry about if he want to sustain our earth, and every little reduction in each person's ecological footprint will make the difference.
With the internet, information is available instantly, and I think that because of this, our chances to succeed are actually better than many of the pessimistic predictions.
Information exchange and action is what will save our modern planet.


text:
Creating mechanism to integrate ERIN, a communicative approach material with structural syllabus material in Japanese language course
Normalis Amzah, Natsue Hieda, Mimiko Nezu
This action research is conducted with objective to create a suitable mechanism that accommodates Erin ga Chosen: Nihongo Dekimasu hereinafter called as ERIN, with Japanese language syllabus in National University of Malaysia hereinafter called as UKM. Japanese language as a foreign language courses in UKM uses structural syllabus where the teaching of foreign language will focuses on the structure of the language. ERIN has been use for certain amount of time in Japanese language courses here since 2009 and a survey to acquire learner's perception towards the teaching material has been conducted. Findings of the survey suggest that students perceive it as a very useful source in learning the language. This is due to its approach that introduces the language structure within everyday situations which eventually led to a glimpse of Japanese culture as well. The current Japanese language syllabus in UKM and ERIN apply a different approach in introducing the language. On the contrary, the core content of the language between these two materials is more or less the same content. Multiple approaches applied in teaching the same content of foreign language will expand learner's ability to comprehend the language as well as the culture.
Procedia - Social and Behavioral Sciences
https://doi.org/10.1016/j.sbspro.2011.05.063
Kongres Pengajaran dan Pembelajaran UKM, 2010 - Tanjung Keling, Melaka, Malaysia
Duration: 13 Dec 2010 → 15 Dec 2010
Kongres Pengajaran dan Pembelajaran UKM, 2010
Tanjung Keling, Melaka
Audio-visual teaching material
Social Sciences(all)
Amzah, N., Hieda, N., & Nezu, M. (2011). Creating mechanism to integrate ERIN, a communicative approach material with structural syllabus material in Japanese language course. In Procedia - Social and Behavioral Sciences (Vol. 18, pp. 427-435) https://doi.org/10.1016/j.sbspro.2011.05.063
Creating mechanism to integrate ERIN, a communicative approach material with structural syllabus material in Japanese language course. / Amzah, Normalis; Hieda, Natsue; Nezu, Mimiko.
Procedia - Social and Behavioral Sciences. Vol. 18 2011. p. 427-435.
Amzah, N, Hieda, N & Nezu, M 2011, Creating mechanism to integrate ERIN, a communicative approach material with structural syllabus material in Japanese language course. in Procedia - Social and Behavioral Sciences. vol. 18, pp. 427-435, Kongres Pengajaran dan Pembelajaran UKM, 2010, Tanjung Keling, Melaka, Malaysia, 13/12/10. https://doi.org/10.1016/j.sbspro.2011.05.063
Amzah N, Hieda N, Nezu M. Creating mechanism to integrate ERIN, a communicative approach material with structural syllabus material in Japanese language course. In Procedia - Social and Behavioral Sciences. Vol. 18. 2011. p. 427-435 https://doi.org/10.1016/j.sbspro.2011.05.063
Amzah, Normalis ; Hieda, Natsue ; Nezu, Mimiko. / Creating mechanism to integrate ERIN, a communicative approach material with structural syllabus material in Japanese language course. Procedia - Social and Behavioral Sciences. Vol. 18 2011. pp. 427-435
@inproceedings{a343b64875b44ba0b08fd9909adb32c5,
title = "Creating mechanism to integrate ERIN, a communicative approach material with structural syllabus material in Japanese language course",
abstract = "This action research is conducted with objective to create a suitable mechanism that accommodates Erin ga Chosen: Nihongo Dekimasu hereinafter called as ERIN, with Japanese language syllabus in National University of Malaysia hereinafter called as UKM. Japanese language as a foreign language courses in UKM uses structural syllabus where the teaching of foreign language will focuses on the structure of the language. ERIN has been use for certain amount of time in Japanese language courses here since 2009 and a survey to acquire learner's perception towards the teaching material has been conducted. Findings of the survey suggest that students perceive it as a very useful source in learning the language. This is due to its approach that introduces the language structure within everyday situations which eventually led to a glimpse of Japanese culture as well. The current Japanese language syllabus in UKM and ERIN apply a different approach in introducing the language. On the contrary, the core content of the language between these two materials is more or less the same content. Multiple approaches applied in teaching the same content of foreign language will expand learner's ability to comprehend the language as well as the culture.",
keywords = "Audio-visual teaching material, Foreign language, Japanese language, Language and culture",
author = "Normalis Amzah and Natsue Hieda and Mimiko Nezu",
doi = "10.1016/j.sbspro.2011.05.063",
booktitle = "Procedia - Social and Behavioral Sciences",
T1 - Creating mechanism to integrate ERIN, a communicative approach material with structural syllabus material in Japanese language course
AU - Amzah, Normalis
AU - Hieda, Natsue
AU - Nezu, Mimiko
N2 - This action research is conducted with objective to create a suitable mechanism that accommodates Erin ga Chosen: Nihongo Dekimasu hereinafter called as ERIN, with Japanese language syllabus in National University of Malaysia hereinafter called as UKM. Japanese language as a foreign language courses in UKM uses structural syllabus where the teaching of foreign language will focuses on the structure of the language. ERIN has been use for certain amount of time in Japanese language courses here since 2009 and a survey to acquire learner's perception towards the teaching material has been conducted. Findings of the survey suggest that students perceive it as a very useful source in learning the language. This is due to its approach that introduces the language structure within everyday situations which eventually led to a glimpse of Japanese culture as well. The current Japanese language syllabus in UKM and ERIN apply a different approach in introducing the language. On the contrary, the core content of the language between these two materials is more or less the same content. Multiple approaches applied in teaching the same content of foreign language will expand learner's ability to comprehend the language as well as the culture.
AB - This action research is conducted with objective to create a suitable mechanism that accommodates Erin ga Chosen: Nihongo Dekimasu hereinafter called as ERIN, with Japanese language syllabus in National University of Malaysia hereinafter called as UKM. Japanese language as a foreign language courses in UKM uses structural syllabus where the teaching of foreign language will focuses on the structure of the language. ERIN has been use for certain amount of time in Japanese language courses here since 2009 and a survey to acquire learner's perception towards the teaching material has been conducted. Findings of the survey suggest that students perceive it as a very useful source in learning the language. This is due to its approach that introduces the language structure within everyday situations which eventually led to a glimpse of Japanese culture as well. The current Japanese language syllabus in UKM and ERIN apply a different approach in introducing the language. On the contrary, the core content of the language between these two materials is more or less the same content. Multiple approaches applied in teaching the same content of foreign language will expand learner's ability to comprehend the language as well as the culture.
KW - Audio-visual teaching material
KW - Foreign language
KW - Japanese language
KW - Language and culture
U2 - 10.1016/j.sbspro.2011.05.063
DO - 10.1016/j.sbspro.2011.05.063
BT - Procedia - Social and Behavioral Sciences
10.1016/j.sbspro.2011.05.063

redpajama_set_name: RedPajamaCommonCrawl


text:
Doug Downey is sworn into his new role as Ontario's Attorney General at Queen's Park in Toronto on Thursday, June 20, 2019. A new bill in Ontario could make it harder for consumers to sue a business that was involved in the transmission of COVID-19, lawyers say. THE CANADIAN PRESS/ Tijana Martin
Law to shield businesses that spread COVID-19 could benefit insurers, limit consumers
The new law comes amid concerns of the ability of businesses to keep people safe
Oct. 22, 2020 9:30 a.m.
A new bill in Ontario could make it harder for consumers to sue a business that was involved in the transmission of COVID-19, lawyers say.
Bill 218, which Ontario Attorney General Doug Downey has dubbed the Supporting Ontario's Recovery Act, proposes protecting people from legal action if they made a "good faith effort" to stop the spread of COVID-19 after March 17.
When introducing the bill, Downey highlighted potential protections for "hard-working women and men who make essential contributions to our communities, from frontline health care workers to people coaching minor sports teams, to those keeping our supply chain moving, to people volunteering at the local food bank or those simply showing up for work each day despite the unprecedented challenges of COVID-19."
The biggest impact will be on the long-term care industry, notes Mohsen Seddigh, a lawyer at Sotos LLP. But the bill also has the potential to "wipe out" claims from patrons at other businesses, he said.
The new law comes amid concerns of the ability of businesses to keep people safe. An Ipsos poll released on Wednesday suggested that only 35 per cent of respondents agreed that businesses are making an effort to ensure health and safety guidelines are followed.
That's down from 69 per cent of consumers who saw businesses making an effort in May, according to the online poll of 2,000 Canadian adults between Aug. 28 and Sept. 5. The polling industry's professional body, the Marketing Research and Intelligence Association, says online surveys cannot be assigned a margin of error because they do not randomly sample the population.
Kris Bonn, the president-elect of the Ontario Trial Lawyers Association, said he understands the government faces a difficult task: to help businesses that have lost money during the COVID-19 pandemic, while balancing the rights of ill people and grieving families.
But while Downey said the bill will still allow people to take legal action against "bad actors," Bonn said the wording of the bill may have unintended consequences. Customers or families infected with COVID-19 at a place of business might find it harder to get money for their losses.
For one, the bill sets a higher bar that businesses must breach before a customer could successfully sue. The standard, called gross negligence, is usually applied in situations where someone is injured in a fall due to a municipality's failure to maintain a sidewalk, said Bonn.
How a judge will interpret this high standard in the context of a contact tracing, wearing masks or cleaning during a pandemic is open to question. Bonn said he's hopeful that a judge will view deviations from well-publicized health guidelines as grossly negligent.
But since it's harder for a lawyer to win a gross negligence case, Bonn said the new law could mean that plaintiffs will be on the hook for legal fees and spend two or three years in court, or wait for another legal precedent before they know how their lawsuit measures up.
Proving gross negligence also requires a lot of evidence about what the business did to prevent the spread of COVID-19, Bonn said. Unlike a crack on a sidewalk, customers may not be able to see that clearly without investing significant resources in doing legal discovery. For example, a business may have had previous warnings or incidents, but the consumer wouldn't know.
"We do have some concerns that (the bill) may go too far," said Bonn of the bill.
While the bill seeks to protect frontline workers, Seddigh said it may be insurance companies that ultimately benefit. Seddigh said that as a lawyer, if a business owner sought counsel because an employee passed COVID-19 to a customer, his first question would be, "What's your insurance?"
While an individual employee could be named in a civil lawsuit for negligence, lawsuits are expensive. Seddigh said that most cases that move forward are ones where the target has money to pay the victim, such as a business with insurance.
"The flip side of it is, if someone comes to me on the other side and says, 'I lost my parent, my grandfather, or my loved one, or I myself got gravely hurt' as a result of what can only be negligent conduct, my advice is going to be: 'Look, this bill is going to make it very, very difficult to advance those claims and to get any level of justice,'" said Seddigh.
Another issue with the bill, said Seddigh, is the wording. The bill requires businesses and workers to follow public health guidelines with a "good faith effort," defined as "an honest effort, whether or not that effort is reasonable."
Seddigh said that wording is much less clear than a similar law in British Columbia. There, a ministerial order specifies that a person must at least "reasonably believe" they were complying.
"In law, every word has to have some meaning. But here, it's honestly not defined. We don't know what (good faith effort) is here," said Seddigh.
Anita Balakrishnan, The Canadian Press
Coronavirusinsurance
B.C. carbon tax highest in Canada, export industries unprotected
Site C actions, costs won't be known until after B.C. election, Horgan says


text:
Home / News / "Indian Ocean: land of challenges and innovations for humanitarian actors": the replay is online
"Indian Ocean: land of challenges and innovations for humanitarian actors": the replay is online
On October 12, the Foundation organised the 5th edition of the Instant recherche, a scientific debate that brought together researchers and experts on one of the Foundation's priority themes. The discussion this time focused on the countries of the southwestern Indian Ocean, with five panelists:
Hugo Drianne, DRM Mayotte-Comoros project manager at the French Red Cross' Indian Ocean Regional Intervention Platform (PIROI);
Sylvie Malardel, teacher-researcher at Météo France;
Dolorès Pourette, health anthropologist at the Institut de Recherche pour le Développement (IRD);
Aude Sturma, environmental sociologist, researcher associated with the Centre d'Etudes et de Recherche Travail, Organisation Pouvoir in Toulouse (CERTOP/CNRS);
Annabelle Jaccard, clinical psychologist and doctor in psychopathology and psychoanalysis.
On July 1 and 2, 2021, the French Red Cross Foundation, in partnership with the IRD (Institut de Recherche pour le Développement), the PIROI (Plateforme d'Intervention Régionale dans l'Océan Indien) of the French Red Cross, and the University of Reunion organised its annual international conference on the humanitarian transition in Saint Denis de La Réunion.
During these two days, which brought together a hundred or so stakeholders from the humanitarian and social economy sectors, as well as university researchers involved in the region, exchanges aimed to analyse the changes underway, to question the most important issues and to create a dialogue between academic and humanitarian actors in order to better define, understand and anticipate the humanitarian transition taking place in the island states of the Indian Ocean in relation to neighbouring continental countries.
The fifth edition of the Foundation's " Instant recherche " brought together on October 12, 2021 a representative of PIROI and researchers in meteorology, anthropology, sociology, psychology on the theme "Indian Ocean: land of challenges and innovations for humanitarian actors". The objective was to continue the exchanges started during the last round table of the Conference entitled "Science for humanitarian action: how to strengthen the links between scientific and operational actors in the Indian Ocean?"
Due to their specificities, these territories reflect multiple challenges and difficulties for humanitarian actors. As a result, they are also territories where humanitarian actors must innovate and work to adapt their programs to these multidimensional difficulties and specificities. This " Instant recherche " has shown the efforts made in this direction, and in particular the initiatives born from collaboration between humanitarian actors and academics, to finally address the conditions for a good synergy between them.
About fifty people (academics, field workers, NGOs, students, institutions) attended the debate and enriched it at the end of the meeting with many concrete questions addressed directly to the panelists.
Replay the discussion
Replay former panel discussions:
IR4 : "A social science perspective on disasters"
IR3 : "A social science perspective on migrations"
IR2 : "A Social Science Perspective on a Local Humanitarian Action"
IR1 : "A Social Science Perspective on Epidemics in Africa"
Reducing vulnerability to... The Foundation has supported nearly ten research projec...
A renewed Board of Admini... Mr Philippe Da Costa, elected President of the Board of...
The Foundation's 20... Three laureates with exemplary backgrounds were honored...
'Resilience must not be u... An interview with Sandrine Revet, a doctor of anthropol...
"Humanitarian trans... The Foundation's 2021 International Conference brought...
Tags: Débat débat chercheurs instant recherche Océan Indien visioconférence webinaire


text:
Q: SwiftUI MVVM: child view model re-initialized when parent view updated I'm attempting to use MVVM in a SwiftUI app, however it appears that view models for child views (e.g. ones in a NavigationLink) are re-initialized whenever an ObservableObject that's observed by both the parent and child is updated. This causes the child's local state to be reset, network data to be reloaded, etc.
I'm guessing it's because this causes parent's body to be reevaluated, which contains a constructor to SubView's view model, but I haven't been able to find an alternative that lets me create view models that don't live beyond the life of the view. I need to be able to pass data to the child view model from the parent.
Here's a very simplified playground of what we're trying to accomplish, where incrementing EnvCounter.counter resets SubView.counter.
import SwiftUI
import PlaygroundSupport

class EnvCounter: ObservableObject {
    @Published var counter = 0
}

struct ContentView: View {
    @ObservedObject var envCounter = EnvCounter()

    var body: some View {
        VStack {
            Text("Parent view")
            Button(action: { self.envCounter.counter += 1 }) {
                Text("EnvCounter is at \(self.envCounter.counter)")
            }
            .padding(.bottom, 40)

            SubView(viewModel: .init())
        }
        .environmentObject(envCounter)
    }
}

struct SubView: View {
    class ViewModel: ObservableObject {
        @Published var counter = 0
    }

    @EnvironmentObject var envCounter: EnvCounter
    @ObservedObject var viewModel: ViewModel

    var body: some View {
        VStack {
            Text("Sub view")

            Button(action: { self.viewModel.counter += 1 }) {
                Text("SubView counter is at \(self.viewModel.counter)")
            }

            Button(action: { self.envCounter.counter += 1 }) {
                Text("EnvCounter is at \(self.envCounter.counter)")
            }
        }
    }
}

PlaygroundPage.current.setLiveView(ContentView())

A: To solve this problem I created a custom helper class called ViewModelProvider.
The provider takes a hash for your view, and a method that builds the ViewModel. It then either returns the ViewModel, or builds it if its the first time that it received that hash.
As long as you make sure the hash stays the same as long as you want the same ViewModel, this solves the problem.
class ViewModelProvider {
    private static var viewModelStore = [String:Any]()

    static func makeViewModel<VM>(forHash hash: String, usingBuilder builder: () -> VM) -> VM {
        if let vm = viewModelStore[hash] as? VM {
            return vm
        } else {
            let vm = builder()
            viewModelStore[hash] = vm
            return vm
        }
    }
}

Then in your View, you can use the ViewModel:
Struct MyView: View {
    @ObservedObject var viewModel: MyViewModel

    public init(thisParameterDoesntChangeVM: String, thisParameterChangesVM: String) {
        self.viewModel = ViewModelProvider.makeViewModel(forHash: thisParameterChangesVM) {
            MOFOnboardingFlowViewModel(
                pages: pages,
                baseStyleConfig: style,
                buttonConfig: buttonConfig,
                onFinish: onFinish
            )
        }
    }
}

In  this example, there are two parameters. Only thisParameterChangesVM is used in the hash. This means that even if thisParameterDoesntChangeVM changes and the View is rebuilt, the view model stays the same.

A: I was having the same problem, your guesses are right, SwiftUI computes all your parent body every time its state changes. The solution is moving the child ViewModel init to the parent's ViewModel, this is the code from your example:
class EnvCounter: ObservableObject {
    @Published var counter = 0
    @Published var subViewViewModel = SubView.ViewModel.init()
}

struct CounterView: View {
    @ObservedObject var envCounter = EnvCounter()

    var body: some View {
        VStack {
            Text("Parent view")
            Button(action: { self.envCounter.counter += 1 }) {
                Text("EnvCounter is at \(self.envCounter.counter)")
            }
            .padding(.bottom, 40)

            SubView(viewModel: envCounter.subViewViewModel)
        }
        .environmentObject(envCounter)
    }
}

A: A new property wrapper is added to SwiftUI in Xcode 12, @StateObject. You should be able to fix it by simply changing @ObservedObject for @StateObject as follows.
struct SubView: View {
    class ViewModel: ObservableObject {
        @Published var counter = 0
    }

    @EnvironmentObject var envCounter: EnvCounter
    @StateObject var viewModel: ViewModel // change on this line

    var body: some View {
        // ...
    }
}

redpajama_set_name: RedPajamaStackExchange


1) Read through all the 23 future-related topics in the preceding blog post. We have harvested these topics from your texts, from our guest lectures and from literature. Some topics are very brief, other topics are slightly more elaborated.
3a). Preferably: You are hopefully inspired by several of the topics, but you realize that we have missed an excellent topic that really should have been on this list. Invent a title and write a short text about that topic (50-200 words) and bring it on paper to the seminar on Tuesday. You can use bullets to make you idea/topic more clear. Don't forget to write your name on the paper!
3b) Otherwise: If you can't think of a new topic, take one of the 21 existing topics and "develop" or specify it further. Take the topic one step further ("to the next level") and bring it on paper (50-200 words) to the seminar on Thursday. Don't forget to write your name on the paper!
4) NOTE: We all meet in the biggest of the two seminar room for initial information before we divide into smaller groups. Please be on time! Late arrivals will have fewer options!
Are there no instructions for tomorrows (monday 22/9, 10.00 in M3) lecture?


text:
Q: Finding possible paths on a map using recursion. Help needed I´ve been trying to solve a problem where I want to be able to go through a grid/map (se below) from the top left corner to the right column. The idea is to find all possible paths through the grid.
The grid
1 2 3
1 2 3
1 2 3
I have constructed a recursive method that works by finding all possible directions for a specifik position (junction) in the grid (for example one might be able to go south and east) and then go through the possible directions by calling the same recursive method again. If we reach the right column the recursion ends and we go back to the previous position and try other direction/s.
To avoid loops the method also keeps track of the current path so we avoid going back or in loops. It is this list of current path that Im having problems with. When I reach the the first base case (ending the recursive call) and the recursive method tries another direction the list has changed (even though it should not) to contain the path for the base case.
Looking at the printout below I point out the first error. The list containing current path does for some reason contain the historic path which it should not do.
[(0, 1), (1, 0)]
In for loop  0 0
[['x', 2, 3], [1, 2, 3], [1, 2, 3]]
[(0, 2), (1, 1)]
In for loop  0 1
[['x', 'x', 3], [1, 2, 3], [1, 2, 3]]
endpoint 0 2
In for loop  0 1
[['x', 'x', 'x'], [1, 2, 3], [1, 2, 3]]
[(1, 2), (2, 1), (1, 0)]
In for loop  1 1
[['x', 'x', 'x'], [1, 'x', 3], [1, 2, 3]] -----> THIS ROW SHOULD NOT CONTAIN x IN POSITION 3 IN THE FIRST ROW
endpoint 1 2
In for loop  1 1
[['x', 'x', 'x'], [1, 'x', 'x'], [1, 2, 3]]
[(2, 2), (2, 0)]
In for loop  2 1
[['x', 'x', 'x'], [1, 'x', 'x'], [1, 'x', 3]]
endpoint 2 2
In for loop  2 1
[['x', 'x', 'x'], [1, 'x', 'x'], [1, 'x', 'x']]
[(1, 0)]
In for loop  2 0
[['x', 'x', 'x'], [1, 'x', 'x'], ['x', 'x', 'x']]
[]
In for loop  1 1
[['x', 'x', 'x'], ['x', 'x', 'x'], ['x', 'x', 'x']]
[]
In for loop  0 0
[['x', 'x', 'x'], ['x', 'x', 'x'], ['x', 'x', 'x']]
[]
Any help is greatly appreciated!!!!!
#This method is called each time a new path is taken
def goNextPath(tmp_mapOfMudCopy,tmp_y,tmp_x,tmp_high):

    # ~ print (tmp_mapOfMudCopy)
    tmp_mapOfMudCopy[tmp_y][tmp_x] = 'x'         #This marks that we have been here and we dont want to go here again

    #Ok first check if we reached an endpoint then just return. This is the base case of the recursion
    if tmp_x == (len(tmp_mapOfMudCopy[tmp_y]) - 1):
        # tmp_mapOfMudCopy[tmp_y][tmp_x] = 'x' #This marks that we have been here and we dont want to go here again
        print('endpoint',tmp_y,tmp_x)
        return

    #This is not an endpoint so fitmp_mapOfMudCopynd which possible directions we can go and add to list. Check so we dont go the same way again
    listPDirections = []
    #Check north. Check also if we have been there before
    if tmp_y > 0: #First check that north is possible
        if tmp_mapOfMudCopy[tmp_y - 1][tmp_x] != 'x': #Now check if we have benn there
            listPDirections.append((tmp_y - 1,tmp_x))
    #Check east.
    if tmp_x < (len(tmp_mapOfMudCopy[tmp_y]) - 1):
        if tmp_mapOfMudCopy[tmp_y][tmp_x + 1] != 'x':
            listPDirections.append((tmp_y,tmp_x + 1))
    #Check south.
    if tmp_y < (len(tmp_mapOfMudCopy) - 1):
        if tmp_mapOfMudCopy[tmp_y + 1][tmp_x] != 'x':
            listPDirections.append((tmp_y + 1,tmp_x))
    #Check west.
    if tmp_x > 0:
        if tmp_mapOfMudCopy[tmp_y][tmp_x - 1] != 'x':
            listPDirections.append((tmp_y,tmp_x - 1))

    print (listPDirections)

    tmp_mapOfMudCopy_path = tmp_mapOfMudCopy.copy() #Copy the map with 'x' marking current path

    for direction in listPDirections:
        print ('In for loop ',tmp_y,tmp_x)
        print(tmp_mapOfMudCopy_path)
        goNextPath(tmp_mapOfMudCopy_path,direction[0],direction[1],tmp_high)

#This method finds the shallowest depth of mud route
def findPath():

    tmp_mapOfMud = [[1,2,3],[1,2,3],[1,2,3]] #Create a map with two rows and three columns
    goNextPath(tmp_mapOfMud,0,0,0) #Call the path finding method and

#Main method this is run when program starts and calls the other methods
if __name__ == '__main__':
    findPath()

A: Have a look at graph theory ... something like this https://www.geeksforgeeks.org/find-paths-given-source-destination/ should help.
If I understood your problem correctly

A: Solved this by using deepcopy instead.


Shiri Appleby and Jon Shook have welcomed a baby girl.
The Girls star, who plays Natalia in the hit comedy series, gave birth on Saturday 23 March in Los Angeles.
Speaking to Us Weekly, she said: "She's heaven. I'm beyond thrilled."
The actress announced her pregnancy in December, five months after she became engaged to the chef during a trip to Italy.
The couple decided not to find out the gender of their first child until they were born.
"It's really made the whole pregnancy a heightened excitement because you just don't know what it's going to be," she said.
Appleby also opened up about decorating their nursery.
"We got a chandelier, we got a rug and we're looking for drapes. . . We don't want it to look too much like a baby's room," Appleby explained. "We're both on the same page about how we want it to look."
The former Roswell High star went on to praise her husband-to-be for his loving support throughout the pregnancy.
"When you see this guy going to all the doctor's appointments with you, and you tell him you're feeling a certain way, and two minutes later he's looked it up on the internet to tell you that it's normal, you realize that you're really starting a family with somebody," she said. "There's no way to look at that person and not be more in love."


text:
Caubous () ist eine französische Gemeinde mit  Einwohnern (Stand ) im Département Haute-Garonne in der Region Okzitanien (zuvor Midi-Pyrénées). Die Einwohner werden als Caubousois bezeichnet.

Nachbargemeinden
Umgeben wird Caubous von den sieben Nachbargemeinden:

Bevölkerungsentwicklung

Sehenswürdigkeiten
 Kirche St-Félix, erbaut ab dem 13. Jahrhundert

Literatur
 Le Patrimoine des Communes de la Haute-Garonne. Flohic Editions, Band 1, Paris 2000, ISBN 2-84234-081-7, S. 249–251.

Weblinks

Ort in Okzitanien

redpajama_set_name: RedPajamaWikipedia


Very nice and useful post :-) !!
This seems a really cool addition to PgAdmin III. Congratulations and thank you!
I just missed some information about setting up the daily backup job with the local authorization set to password on Windows. Passing the password to pgAgent with password=**** is not sufficient (and not save), as pg_dump requires a password too!
This is not easy to detect, as pgAgent just waits for infinity.
How to config pgpass.conf and what is it's content?
I use PostgreSQL 8.1 so i dun see that file? Can you help me?
But up to now, i can't run this batch with pgAgent, actually i did as this post :-(. So i dun know why it dun work!
4- install de agent services.
8- get confused when nothing happens.
Did you verify to make sure the PostgreSQL Agent service is running in windows services. Sometimes it installs, but doesn't start.
If the service isn't started, then clicking run in PgAdmin III won't do anything.
The other possibility is that the postgres account the service is running under has no access or your .pgpass file does not exist or is invalid.
Just in case if somebody is wondering why the Linux script doesn't work as it is - typos!
Here is yet another script solution, using Python. I have this on a Windows machine tucked on a server. I just need to double-click it when I think it is a good time to do a backup (typically once in the morning and once in the afternoon).
Problem - in PGAdminIII, i setup the job as listed and when i right-click on jobs, there's no Run Now.
i only get Refresh, New Job, and Object List Report.
able to configure everything and able to get a file in the specified output directory also. but the file size shows as 0kb and in statistis section of pgAgent job in pgAdmin III status shows as Successful.
I have installed successfully pgAgent and able to see the jobs--> Scheduler, Steps and created new job and scheduled for daily routine maintenance, but it is not working.
Is pgAgent really meant to run on "postgres" database?? If not, why is that when I select other database on which the step will run, it says, "Couldn't connect to the database!", but when i select the postgres database, it is running smoothly. If pgAgent can run in other database, can you teach me how can i do that?
if you are using windows, and the host name is localhost then be sure to use localhost in pgpass and not 127.0.0.1. or just use both.
I have the script and it works when I run it through terminal. The script is under owner 'administrator' and the folders I backup also belong to 'administrator'.
When I try to run it through PgAgent then nothing happen. Which user should own the script and the folders?? Should I chown it to user 'postgres' ? I tried that but still nothing runs.
Depends what account you have the PgAgent service running under. For our purposes we setup a separate account with admin rights so we wouldn't have to worry about that stuff and have the service running under that account. That also allows us have it write the backups to our network file server.
which server are you running? I've had some stupid issues with Windows 2008 R2, though can't recall how I overcame them.
I've done the same steps as in the article. My job finished succesfully but dunp were not created. What I am doing wrong?
Which platform are you running on? Unfortuantely the pgagent success for non-sql jobs is not ahtat trustworthy (or at least not on windows anyway). But you can usually see the log results which often shows the error that happened.
First you want to make sure whatever script you have runs fine as is. Standalone. If it does, then you want ot make sure the account your have pgAgent running under can also run the process. That is suually the probelm that the pgAgent daemon (/service) account doesn't ahve enough rights to run your batch job.
You wrote: "In practice we also like to have at least one of the backups ftped to a remote location and include that as part of the script ...".
It would have been very interesting to see how you did this with pgagent on your CentOS test box, because I have some trouble getting both ftp and sftp performing a set of commands I try to feed them with, by several different mechanisms. Ftp/sftp do transfer the files when I run the script manually, but not by pgagent. I suspect it might have something to do with user or env settings, but have not found the solution yet.
I just installed pgAgent 3.0 on MS Win Server 2008 using pgAdmin 1.14.1 following the above to do batch jobs, and the only gotcha I had was that pgAgent kept failing to actually run the batch file.
By running pgAgent in DEBUG mode at the command prompt, I saw the batch file pgAgent was trying to run was not my batch file as per above, but a temp created batch file. After putting the above code directly into the definition, instead of using batch file path and filename, the job ran perfectly.
Great. Come to think of it I think I've always run the scripts for windows by pasting the script directly in the batch window. For Unix/Linux I usually do the same too, though I think on linux I have done with path to file without issues. Maybe that's why I assumed it would work on windows as well.
set BACKUPDIR="C:\pgjobs\backup\\". This is odd, because PostgreSQL runs as the same user as pgAgent with no problem.


Do you desire a relaxing weekend getaway? Well then, check out this Keystone Springdale Mini 1760BH travel trailer! It features a set of bunk beds that your kiddos are sure to love, and next to the bunk beds conveniently located is the rear full bath for easy access. You can comfortably enjoy your delicious meals at the booth dinette or even transform it into an extra sleeping space. In the front, there is a 52"x 74" sized bed with overhead cabinets, a closet, and a nightstand all to help you enjoy a good night's rest!


Get up close and personal with the 2020 Rose Parade equestrian units at Equestfest presented by Wells Fargo. Watch beautiful horses and talented riders perform drills and dances and demonstrate trick riding and roping. Attendees can also stroll through the stables, talk to riders and learn about the various tack and the many different breeds while enjoying the vendor court, displays, great music, food and drinks. This is the best family Equestrian event of the year. Don't miss it.
General Admission: $15 per person. General admission is free for children 5 and under.
VIP Package Includes: a Preferred Reserved Seat, an Official Souvenir Seat Cushion and other surprises! Everyone regardless of ages needs a ticket for all VIP reserved seats.
Equestrian show: Noon - 2 p.m.
Box office opens on day of event at 9:30 a.m.
The gates open at 10:00 am. Vendor court and activities from 10:00 am - 3:00 pm. The show is from 12:00-2:00 pm. There will be static displays, food, vendors and the warm-up rings for the Equestrians once the gates open.
Parking $10.00 per car at the Los Angeles Equestrian Center. Parking is purchased at the event venue.