Author: Chris Hammond

  • 1.9 Activity: Investigate climate change in the news and on social media

    Photo above: From my time in Kurdistan, I witnessed how climate change is affecting local agriculture. Farmers are facing hotter summers coinciding with water scarcity and drying of local rivers, affecting their ability to grow crops. Photo credit: Chris Hammond, Erbil-Duhok Road, 2021 – All Rights Reserved.

    The world is heading to add 57 superhot days a year, but study indicates it could have been worse – Associated Press

    Published Oct 16th, 2025 – https://www.ctvnews.ca/climate-and-environment/article/the-world-is-heading-to-add-57-superhot-days-a-year-but-study-indicates-it-could-have-been-worse/

    Article Summary: This AP article reviews and summarizes the findings of a recent report by Climate Central and World Weather Attribution regarding current climate and extreme heat projections updated since the Paris Agreement ten years ago. The article begins with pertinent information: based on our current climate trajectory, by the end of the century the Earth may experience a global average of 57 “superhot” and dangerous days each year, with smaller (Global South) nations most affected. Conversely, the largest carbon-polluting countries will be least affected. AP organizes the article with a framing that, at first, focuses on the effectiveness of efforts to curb emissions in the past ten years, explaining that efforts have brought total superhot day projections down from the estimated 117 days previously.

    Through the article, various statistics are shared, including an estimated projection of 2.6 °C global average temperature by the end of the century above preindustrial times, which is 1.4 °C lower than the trajectory to 4 °C estimated before the 2015 Paris agreement and global efforts to reduce emissions.

    The article outlines the dangers of superhot days, briefly indicating the potential risks to health and life, and that we can expect this to become ever worse. In the latter half, it outlines serious inequality, where 149 ‘extra super hot days’ may be experienced by smaller countries in the Global South, while the top polluters like the US, China, and India may only experience a mere 23 to 30 extra superhot days. It states that this inequality will further geopolitical instability, and that despite no longer being on a trajectory to the pre-Paris outcome, the current trajectory will be disastrous for billions of people.

    Reflection: Reading this article, I couldn’t help but think of a scene from season 3 of the HBO series Newsroom when anchor Will McAvoy sits down to interview a U.S EPA climate scientist. The scientist, revealing the precarious situation we face with climate change, bluntly states the gravity of what’s to come. Perceived as fearmongering, McAvoy pushes back, “let’s see if we can’t find a better spin, people are starting their weekends […] we want to inform people but we don’t want to alarm them, can you give us a reason to be optimistic?”

    This exchange captures the attitudes within the press and media as it attempts to soften the uncomfortable truth of climate change. While this AP article does iterate over important details of the projected number of superhot days anticipated in the future, including mention of the global south, a brief mention of inequality and the contradiction that the biggest polluters will be least affected, at the same time, the organization of these facts tells a story in and of itself. AP begins by framing the report in a way that undermines how devastating a 2.6 °C increase in global average temperature would be. Yet, it does mention that this would be catastrophic for billions of people, but rather than making this the headline, it is buried at the end of the article. The framing then is softened while lending itself to ‘journalistic integrity’ so that AP can claim it presented all appropriate details, yet it undermines what should be a serious warning, that we’re not on target and the consequences will be severe. But like McAvoy tries to force out of the U.S. EPA scientist in his newsroom, the article looks for a safer and more palatable spin, even when the facts indicate that large numbers of people are likely to die under a growing number of superhot days that were preventable had appropriate urgency and action been taken.

    International deal to cut shipping emissions falters under U.S. pressure – Associated Press

    Published Oct 17th, 2025 – https://www.cbc.ca/news/climate/imo-shipping-emissions-9.6942459

    Article Summary: This article reviews recent actions by the United States and Saudi Arabia, among several other nations, that successfully impeded international efforts to reduce emissions from container ships, which predominantly use heavy oil as a fuel, notorious for its exceptionally high sulphur content. The International Maritime Organization (IMO), based on guidance from some of the world’s largest maritime nations, proposed regulations and economic incentives that would shift the industry away from fossil fuels to cleaner sources of energy. Nonetheless, the US, operating under the Trump administration, labelled the plan a “global green new scam tax on shipping,” alluding to the potential of a global fee imposed on greenhouse gas emissions on cargo ships, and urged nations voting at the IMO in London to vote no. In response, climate ministers from varying nations scoffed at the decision, given the gravity and urgency of climate change. The article states that shipping emissions continue to rise as global trade increases, with three percent of global fossil fuel emissions directly coming from ship transit.

    Reflection: The US, being a global hegemon, has historically used its power to coerce and pressure other countries into voting in favour of the administration’s interests. In this case, the administration is plagued with anti-scientific rhetoric, it is dismissive of international climate cooperation, and entrenched in climate denialism. Outside of this, the article should frame the news more appropriately in terms of climate justice, which would have included contextualizing the potential risks and outlining the contradictions that the nations with the least to lose have blocked this at the cost of nations who are likely to suffer greatest.

    The economic opportunity of climate action is a focus as Toronto Climate Week launches – CP24 in Toronto, Canada

    Published Oct 1st, 2025 – https://www.cp24.com/news/2025/10/01/toronto-climate-week-launches-in-effort-to-grow-canadian-clean-tech-hub/

    Article Summary: The article tries to position itself, stating the United States is removing itself from a leadership role on climate action on the global stage; therefore, some Canadians are urging varying levels of government and industry to step up to the plate and fill the void. It iterates over how climate-induced damages are already costing the economy $25 billion this year, and growing. Comments by Canadian federal environmental minister Julie Dabrusin are provided, who states there is both a moral and economic imperative to ensure the Canadian government has a robust and responsive climate competitiveness strategy, underscoring the necessity of Canadian investment.

    The article discusses how, despite the US sliding back on its climate commitments, many other countries are still focused on climate targets, thus urging Canada to continue its push for clean industry, which may also be a catalyst for economic development and prosperity, particularly through development of clean technology that can be commodified and sold, giving Canadian companies the potential to become leaders in clean industry.

    Reflection: This is a common theme among many climate articles, regardless of publication; often, the focus is on economies, economic output, and framed from the perspective of global capital. It doesn’t problematize the underlying systems and ideologies that contribute to climate change. Further, the article doesn’t necessarily provide appropriate urgency in framing climate change as an existential threat and overlooks Canadian industries’ significant carbon output, where, per capita, Canada rests among the worst polluters in the world.

  • 1.6 Reading: How does carbon relate to climate

    Photo above: Driving across the countryside of Kurdistan region in Northern Iraq, an abundance of oil production facilities and gas flaring sites are observed releasing carbon in the form of methane, carbon dioxide, and many times, black carbon soot into the atmosphere due to incomplete combustion. Captured 2021, All Rights Reserved – Chris Hammond.

    Carbon, in its many forms, is a fundamental component of organic matter (Thorme, 2024). Its presence is ubiquitous; it is a building block for organic molecules, and provides a “backbone” allowing for bonding other elements to form complex structures of life (NOAA, 2019). It can be found almost everywhere, for example, within the air we exhale as carbon dioxide (CO2), in fossil fuels, within in the Earth’s biosphere, oceans, soils, rocks, and sediments. In the context of climate, carbon in the atmosphere also affects Earth’s ability to release heat (Thorme). In fact, the two strongest greenhouse gases in the atmosphere, carbon dioxide and methane (CH4) (both carbon-based), contribute to the warming of the planet.

    Anthropogenic carbon dioxide and methane are emitted through processes such as burning of fossil fuels, deforestation, agricultural practices, and industrial activities like cement production, releasing carbon at a pace that exceeds the rate at which natural sinks can absorb it within the existing natural carbon lifecycle (EPA, 2025). Because greenhouse gases trap infrared radiation in the atmosphere, their thermal effect also increases in relation to their concentration in the atmosphere, thereby accelerating planetary warming. With increased planetary warming, as was discussed in section 1.5, Earth’s climate and weather patterns are altered, affecting and intensifying extreme weather events and their related, often cascading, socioeconomic consequences.

    Problematically, carbon dioxide can remain in the atmosphere for years to centuries or longer (MIT Climate Portal, 2023) and can be described as having a long tail due to the slow process of removal from the atmosphere (Lord et al., 2016). Conversely, although methane’s atmospheric lifetime is not as long, it is no less of a problem, as it is 28 times more potent than carbon dioxide at trapping heat in the atmosphere (EPA 2023), thereby significantly contributing to planetary warming.

    Considering this, briefly then, how is carbon removed from the atmosphere? And what can we do about it? In the natural carbon lifecycle, methane is primarily removed by chemical oxidation, while carbon dioxide is removed by way of carbon sinks (Moseman, 2022). While significant volume of CO2 is absorbed on a scale of ~350 billion tons per year, anthropogenic emissions have tipped the balance and contribute more than can naturally be absorbed (Moseman). Biological uptake assists in removal, where plants (i.e. trees) and algae may absorb it during photosynthesis, storing it as biomass (Riebeek, 2011); oceans, which act as sinks, dissolve CO2 into seawater, but problematically, as the ocean absorbs greater volumes, it also contributes to acidification due to the pH difference, affecting sea life and aquatic habitats (Riebeek). Further, as waters warm and acidify, they reduce its capacity to absorb CO2 while concurrently disrupting oceanic ecosystems. With that said, technological methods of dealing with CO2 in the atmosphere exist and are being advanced, including carbon capture and sequestration, as well as carbon dioxide removal (NOAA Science Council, 2024).

    Below, I’ve put together a quick comparative table of the two top greenhouse gas properties in relation to the atmosphere and climate change. The data clearly indicate that the atmospheric concentration of these two gases are increasing at rates unprecedented in history.

     Carbon Dioxide (CO2)Methane (CH4)
    Sources• Burning of fossil fuels
    • Solid waste
    • Deforestation
    • Energy production
    • Cement production
    (EPA, 2025)
    • Production/transport of coal
    • Natural gas, oil and fossil fuel extraction
    • Agriculture (ex, livestock enteric methane)
    • Landfill decomposition
    (EPA, 2025; NASA, n.d.)
    Atmospheric concentration• Oct 18th, 2025: 425.10ppm
    For context (1 month avg)
    • Oct 2024: 424.03ppm
    • Oct 2000: 369.44ppm
    • Oct 1960: 316.84 ppm   (Lindsey, 2025)
    • May 2025: 1933.54ppb (latest data from NOAA)
    • Oct 2024: 1941.02 ppb
    • Oct 2000: 1777.08 ppb
    • Oct 1983: 1644.79 ppb
    (Lan et al., 2025)
    Warming PotentialBaseline28 x more than CO2
    (EPA, 2025)
    Atmospheric lifetimeDecades to centuries, in some estimates, 10,000+ year long tail (Moseman, 2022)Approximately 12 years (Mitloehner, 2020)

    Reference List

    EPA – Environmental Protection Agency. “Importance of Methane.” US EPA, 1 Nov. 2023, www.epa.gov/gmi/importance-methane. Accessed 18 Oct. 2025.

    EPA – United States Environmental Protection Agency. “Overview of Greenhouse Gases.” US EPA, 16 Jan. 2025, www.epa.gov/ghgemissions/overview-greenhouse-gases. Accessed 18 Oct. 2025.

    Lan, X, et al. “Trends in Globally-Averaged CH4, N2O, and SF6 Determined from NOAA Global Monitoring Laboratory Measurements.” Gml.noaa.gov, Sept. 2025, doi.org/10.15138/P8XG-AA10. Accessed 18 Oct. 2025.

    Lindsey, Rebecca. “Climate Change: Atmospheric Carbon Dioxide.” Climate.gov, National Oceanic and Atmospheric Administration, 21 May 2025, www.climate.gov/news-features/understanding-climate/climate-change-atmospheric-carbon-dioxide.

    Lord, N. S., et al. “An Impulse Response Function for the “Long Tail” of Excess Atmospheric CO2 in an Earth System Model.” Global Biogeochemical Cycles, vol. 30, no. 1, Jan. 2016, pp. 2–17, agupubs.onlinelibrary.wiley.com/doi/10.1002/2014GB005074, https://doi.org/10.1002/2014gb005074. Accessed 18 Oct. 2025.

    MIT Climate Portal. “How Do We Know How Long Carbon Dioxide Remains in the Atmosphere? | MIT Climate Portal.” Climate.mit.edu, 17 Jan. 2023, climate.mit.edu/ask-mit/how-do-we-know-how-long-carbon-dioxide-remains-atmosphere. Accessed 18 Oct. 2025.

    Mitloehner, Frank. “Why Methane from Cattle Warms the Climate Differently than CO2 from Fossil Fuels.” CLEAR Center, 7 July 2020, clear.ucdavis.edu/explainers/why-methane-cattle-warms-climate-differently-co2-fossil-fuels. Accessed 18 Oct. 2025.

    Moseman, Andrew. “How Much Carbon Dioxide Does the Earth Naturally Absorb?” MIT Climate Portal, 4 Jan. 2022, climate.mit.edu/ask-mit/how-much-carbon-dioxide-does-earth-naturally-absorb. Accessed 18 Oct. 2025.

    NASA. “Which Is a Bigger Methane Source: Cow Belching or Cow Flatulence?” Science.nasa.gov, science.nasa.gov/climate-change/faq/which-is-a-bigger-methane-source-cow-belching-or-cow-flatulence/. Accessed 18 Oct. 2025.

    NOAA – National Oceanic and Atmospheric Administration. “Carbon Cycle.” Carbon Cycle, National Oceanic and Atmospheric Administration, 1 Feb. 2019, www.noaa.gov/education/resource-collections/climate/carbon-cycle. Accessed 18 Oct. 2025.

    NOAA Science Council. “Carbon Dioxide Removal: NOAA State of the Science Factsheet.” NOAA Climate.gov, 19 Sept. 2024, www.climate.gov/news-features/understanding-climate/carbon-dioxide-removal-noaa-state-science-factsheet. Accessed 18 Oct. 2025.

    Riebeek, Holli. “The Carbon Cycle.” NASA Earth Observatory, NASA Earth Observatory, 16 June 2011, earthobservatory.nasa.gov/features/CarbonCycle.

    Thome, Kurtis. “Carbon Cycle and Ecosystems | Terra.” Terra.nasa.gov, 2024, terra.nasa.gov/science/carbon-cycle-and-ecosystems. Accessed 18 Oct. 2025.

  • 1.5 Reading – Climate change and the greenhouse effect

    Below, I reflect on the text and have expanded further by reading more widely, answering the questions posted for section 1.5 reading.

    What major climate anomalies and episodic events occurred in 1998?  

    Throughout 1998, the world experienced a record-breaking rise in global average temperature across the planet, triggering cascading extreme and devastating weather events. Such an increase in temperature was driven by a cyclical climate oscillation known as El Niño, belonging to a periodic warming of the central and eastern sections of the Pacific Ocean (NOAA, 2015). However, emerging research indicates climate change may exacerbate the severity and intensity of the effects of El Niño (Wang, 2019). As a result, devastating floods, droughts, and heatwaves wreaked havoc across the planet during the 98 El Niño event, and have become serious cause for concern for the future.

    The magnitude of the human cost was catastrophic; over 23,000 people are estimated to have died from natural disasters influenced by 1998’s El Niño (Van Trotsenburg, 2015). Even more, tens of millions were impacted as a result of displacement, drought, failure of food systems, and economic loss, with the Global South most acutely affected. Placing the cost of this event in monetary terms, estimates vary by study, with one study published in Science estimating upwards of $5.9 trillion USD in global income losses (Callahan & Mankin, 2023).

    What environmental hazards are associated with climate change, and who is most affected? 

    Answering the first part of the question, environmental hazards associated with climate change are numerous, including floods, monsoons, hurricanes, and extreme weather related to intense precipitation, which are influenced by a greater volume of atmospheric moisture due to warming, occurring at a rate of 7% for every 1 °C increase (Bao et al., 2017; Panthou et al., 2014). Conversely, while greater atmospheric moisture capacity fuels extreme precipitation, it also causes greater evaporation of moisture from soil, resulting in droughts, destruction of soil and croplands, loss of vegetation, and then cascading into destabilization and potential collapse of food systems with far-reaching socioeconomic consequences. Even more, with rising climate and increasing intensity of monsoons and hurricanes, storm surges coinciding with heat induced expansion of warming waters both contribute to coastal erosion, placing in jeopardy all inhabitants within low-lying coastal regions.

    Throughout chapter 1, examples of far-reaching devastation due to environmental hazards were reviewed. One which stood out to me was the example of Bangladesh, epitomizing how vulnerable certain regions are, with the 1970s storm surge disaster causing upwards of 250,000 people to drown (Houghton, 2015, pp. 3-4). And this brings me to the latter part of the question – these hazards are most likely to affect the Global South, which often do not have the economic or technological means to mitigate the effects of climate change, but are more likely to suffer from its effects. By contrast, the Global North, or the so-called “developed nations,” are most responsible for anthropogenic climate change and historically also responsible for the extractive and destructive colonial systems that have inhibited the development of much of the Global South.

    How do volcanic eruptions affect temperature extremes?  

    Volcanic eruptions, in proportion to the magnitude of the eruption and gas and ash released, affect temperature extremes by causing short-term cooling due to the injection of aerosols like sulphur dioxide and fine particulate matter into the stratosphere, causing reflection of solar radiation back into space (USGS, 2015). This can affect regional and global temperature, with varying extremes which tend to push more towards cooler temperatures in the short-term (USGS). While this may cause a temporary reduction in temperature, it is transient, in that it masks the effects of anthropogenic emissions, which continue even during a period of cooling (IPCC, 2023, Ch 6). As volcanic aerosolized fine particulate eventually falls back to the surface, warming resumes to the underlying trendline in relation to emissions released into the atmosphere, which continues upward during the period of cooling.

    What are adaptation and mitigation? 

    Responding to climate change involves strategies revolving around both adaptation and mitigation. Briefly summarized, adaptation can be defined as methods of adjusting to the changes expected in the future due to climate change (NASA, 2024) Mitigation involves methods, strategies, and actions to reduce the anthropogenic causes of climate change, whether it’s lowering emissions, utilizing carbon sinks, among other methods (NASA, 2024).

    Adding my perspective, I can’t help but think about how the parasitic capitalist class, largely responsible for climate change, is adapting by finding new ways of exploitation. In Canada, warming of the Arctic has opened up new frontiers for resource exploitation (Hanaček, 2021); instead of easing the causes of climate change, exploitative industries will further contribute to environmental degradation and destruction.

    What is the greenhouse effect? 

    They say the best way to determine comprehension of a topic is to be able to explain it back to a layperson in simple, intelligible, and comprehensible terms. With that in mind, the greenhouse effect can be explained as the way in which solar radiation from the sun interacts with the atmosphere and surface of the planet. Naturally, when solar radiation lands upon the earth’s surface, it is absorbed, converted into heat, and emitted back into the atmosphere. Nonetheless, greenhouse gases in the atmosphere, largely carbon dioxide, methane, nitrous oxide, water vapour, among other gases, act as a thermal blanket absorbing infrared radiation, radiating some of it back towards the surface of the earth. As greater concentration of greenhouse gases are emitted into the atmosphere, the rate of heat retention increases, thus resulting in a rise in global average temperatures.

    What is the ‘runaway’ greenhouse effect? 

    The runaway greenhouse effect is a process that occurs by way of a feedback loop; in summary, upon passing a temperature threshold a chain reaction of events unfolds where increasing temperatures cause an exponential level of evaporation of water bodies and oceans; this evaporation contributes to rising temperatures, which in turn causes further evaporation. These two processes feed into each other, causing a runaway effect where the planet essentially boils. The text uses Venus as an example of the runaway greenhouse effect, where its atmospheric composition in relation to its proximity to the sun has allowed for the conditions of exponential evaporation and heating.

    While the author states this cannot happen on Earth, I would argue that it is likely to occur, but in the extremely distant future. Drawing on my experience from an introductory Astronomy class during my undergraduate years, I remember learning that the sun’s luminosity is gradually increasing at a rate of 8% every billion years as our star converts hydrogen to helium by way of nuclear fusion (Earle, 2021, pp. 61–62). While the timescale is significant, in approximately 1.1 billion years, the sun’s increasing luminosity will raise the Earth’s average temperature substantially, moving us beyond a threshold that may be the beginning of a runaway greenhouse effect.

    Reference list

    Bao, J., Sherwood, S.C., Alexander, L.V. and Evans, J.P. (2017). Future increases in extreme precipitation exceed observed scaling rates. Nature Climate Change, 7(2), pp.128–132. doi:https://doi.org/10.1038/nclimate3201.

    Callahan, C.W. and Mankin, J.S. (2023). Persistent effect of El Niño on global economic growth. Science, 380(6649), pp.1064–1069. doi:https://doi.org/10.1126/science.adf2983.

    Earle, S. (2021). Changes in Solar Output and in the Earth’s Atmosphere. In: Environmental Geology. [online] Thompson Rivers University. Available at: https://environmental-geol.pressbooks.tru.ca/ [Accessed 17 Oct. 2025].

    Hanaček, K., Kröger, M., Scheidel, A., Rojas, F. and Martinez-Alier, J. (2022). On thin ice – The Arctic commodity extraction frontier and environmental conflicts. Ecological Economics, 191, p.107247. doi:https://doi.org/10.1016/j.ecolecon.2021.107247.

    Houghton, J. (2015). Global Warming. 5th ed. [online] Cambridge University Press, pp.1–33. Available at: https://www.cambridge.org/highereducation/books/global-warming/C1706360E0FEC4F43D47392D8F9EECF0#contents [Accessed 16 Oct. 2025].

    Intergovernmental Panel on Climate Change (IPCC) (2023) ‘Short-lived Climate Forcers’, in Climate Change 2021 – The Physical Science Basis: Working Group I Contribution to the Sixth Assessment Report of the Intergovernmental Panel on Climate Change. Cambridge: Cambridge University Press, pp. 817–922.

    NASA (2024). Mitigation and Adaptation. [online] NASA. Available at: https://science.nasa.gov/climate-change/adaptation-mitigation/.

    NOAA (2015). El Niño | National Oceanic and Atmospheric Administration. [online] www.noaa.gov. Available at: https://www.noaa.gov/education/resource-collections/weather-atmosphere/el-nino.

    Panthou, G., Mailhot, A., Laurence, E. and Talbot, G. (2014). Relationship between Surface Temperature and Extreme Rainfalls: A Multi-Time-Scale and Event-Based Analysis. Journal of Hydrometeorology, [online] 15(5), pp.1999–2011. doi:https://doi.org/10.2307/24914558.

    Van Trotsenburg, A. (2015). We must prepare now for another major El Niño. [online] World Bank Blogs. Available at: https://blogs.worldbank.org/en/eastasiapacific/we-must-prepare-now-another-major-el-nino?utm_source=chatgpt.com [Accessed 18 Oct. 2025].

    Wang, B., Luo, X., Yang, Y.-M., Sun, W., Cane, M.A., Cai, W., Yeh, S.-W. and Liu, J. (2019). Historical change of El Niño properties sheds light on future changes of extreme El Niño. Proceedings of the National Academy of Sciences, [online] 116(45), pp.22512–22517. doi:https://doi.org/10.1073/pnas.1911130116.

  • I recently came across a small issue with AndroidX not compiling in a Maui project after updating CommunityToolkit.Maui and Microsoft.Maui.Controls. The error message presented:

    1>MSBUILD : java.exe error JAVA0000: Error in C:\Users\{User}.nuget\packages\xamarin.androidx.collection.jvm\1.4.0.4\buildTransitive\net8.0-android34.0….\jar\androidx.collection.collection-jvm.jar:androidx/collection/ArrayMapKt.class:

    Type androidx.collection.ArrayMapKt is defined multiple times

    There’s a simple solution, install nuget package xamarin.androidx.fragment.ktx, which will provide bindings for AndroidX library.

    After adding this package, this error resolved for me and compilation completed.

  • It can quickly become a frustrating experience when one small change and save to a script causes your entire project to recompile in Unity when tabbing back and forth from Unity and Visual Studio (VS). This is especially frustrating if you tab back and forth frequently, only to be prompted with the script recompiling loading bar.

    Googling this and looking for a solution on StackExchange, Unity discussion forum, among other places, the responses do not directly address the question. Some people have recommend disabling Unity Editor Auto Refresh in the General options in Unity 2021 or earlier, or Asset Pipeline in Unity 2022 or later. Unfortunately, this doesn’t respond to this specific issue. Another recommendation is to add Burst in Unity’s Package Manager – and while this improves and optimizes compilation, it does not stop every small save in VS from compiling. In fact, the solution is not found in Unity Editor, but rather, in VS which is refreshing Unity’s AssetDatabase through Tools for Unity every time a file is saved.

    There’s a really simple solution in Visual Studio:

    In Visual Studio 2019 or 2022, click Tools -> Options -> Tools for Unity -> Refresh Unity’s AssetDatabase on save -> Set to False.

    Then close and reopen Unity and Visual Studio for the changes to take place. That’s it. And when you do want to compile, simply press Ctrl + R within the Unity Editor.

  • As you develop your game or project, you may require updating the main thread from within another thread. If you’re stuck and need a solution, here’s a quick way to get things moving.

    The code defines a class named MainThreadDispatcher. This class is designed to enable the execution of actions on the main Unity thread from other threads in a thread-safe manner. It accomplishes this by using a ConcurrentQueue to store and process actions, and ConcurrentQueue handles all synchronization internally.

    The Update method is automatically called once per frame by Unity, and it dequeues and executes actions from the concurrentActionQueue while ensuring that the operation is thread-safe. Additionally, a static method EnqueueAction is provided to allow other parts of the code to enqueue actions for execution on the main thread.

    This mechanism is useful for handling tasks that require interaction with Unity’s main thread from background or worker threads, such as updating UI elements, handling game events, or modifying Unity objects in a thread-safe way.

    To use this, create a GameObject in your scene and attach a script with the following:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using System.Collections.Concurrent;
    using System;
    
    public class MainThreadDispatcher : MonoBehaviour
    {
        private static ConcurrentQueue<Action> concurrentActionQueue = new ConcurrentQueue<Action>();
    
        // Update is called once per frame
        void Update()
        {
            while (concurrentActionQueue.TryDequeue(out var actionItem))
            {
                actionItem();
            }
        }
        public static void EnqueueAction(Action action)
        {
            concurrentActionQueue.Enqueue(action);
        }
    }

    ThreadWorker example to test the MainThreadDispatcher:

    MainThreadDispatcher.EnqueueAction method queues an actions for execution on the Unity main thread. A lambda expression is used to encapsulate a set of actions. By enqueuing this lambda expression, it ensures that these actions are performed on the main thread, thereby safely allowing changes to Unity objects and user interface elements without risking threading issues.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using System.Threading;
    
    public class ThreadedWork : MonoBehaviour
    {
        private bool isUpdating = false;
        void Start()
        {
            // Start a background thread to perform work
            Thread backgroundThread = new Thread(PerformBackgroundWork);
            backgroundThread.Start();
        }
        private void PerformBackgroundWork()
        {
            while(true)
            {
                // Simulate some work on a different thread
                Thread.Sleep(5000);
                // To update the main thread, enqueue an action
                MainThreadDispatcher.EnqueueAction(() =>
                {
                    isUpdating = true;
                    // Perform any updates or modifications to Unity objects here
    
                    isUpdating = false;
                });
            }
        }
    }
    
  • This simple console application interfaces Telegram with ChatGPT, allowing Telegram bots to act as agents relaying messages to and from OpenAI’s ChatGPT, based on a personality assigned to the bot. From Telegram, you can query the bot, which relays the message to the ChatGPT API, queries OpenAI, and receives a response based on the personality of your Telegram bot, as customized within the configuration file. This was a quick one-day project, and I thought I’d share it online. I’ll add more features over time, so check back.

    Download:

    Download Telegram ChatGPT Bots Windows Console App – 2023-10-17 v0.1a zip

    Commands:
    Telegram:
    create | Creates a chat bot.
    edit | Edit a chat bot.
    delete | Delete a chat bot.
    list | List all chat bots.
    ChatGPT:
    start | start chatgpt bots.
    stop | stop chatgpt bots.
    botchat | Two bots talk to each other. Requires two or more bots in same telegram channel and connected to chatgpt.
    exit | Exit application.

    Getting Started:

    To use this application you will need to modify the configuration files to interface the application with your Telegram bots and also your ChatGPT account. Below are the instructions on how to do this.

    Telegram Bots:

    How to create a bot:

    1. Start a chat with BotFather.
    2. Click Menu and select NewBot or type /newbot.
    3. Enter the bot name.
    4. Enter the username for the bot, it must end with ‘bot’ and must be unique.
    5. Congratz, you’ve just created a telegram bot. Copy the HTTP API token into bots.json file. In addition, add your botName (the bot’s telegram username) and full name, the ordinary name of the bot.
    6. Enter a description of the personality you would like the bot to have. This will guide the bot’s personality when it uses ChatGPT to generate and respond.

    Connecting to ChatGPT:

    1. Visit OpenAI API key page.
    2. Click “Create new secret key” and copy it to clipboard, then paste it into completionParameters.json apiKey : “your chatgpt api key here” and replace the text in the quotes. IMPORTANT: Never share your API key with anyone as this key can be used to access OpenAI services through your account.
    3. Configure the settings of completionParameters.json to cater to your needs.

    Important: I strongly advise implementing a usage limit for your OpenAI API account. Additionally, it’s advisable to restrict the usage of the API to a private Telegram channel. Querying ChatGPT typically incurs real-world computational costs. You can adjust the “max_tokens” per query using “completionParameters.json,” but please be aware that if your channel is open to the public, other users may also make queries with your bot, potentially leading to additional costs.

    Brief explanation of each configuration parameter:

    • “apiUrl”: The URL for making requests to the OpenAI ChatGPT API.
    • “apiModelsUrl”: The URL for accessing information about available models.
    • “apiKey”: Your authentication key to access the ChatGPT API.
    • “model”: The specific ChatGPT model to be used, in this case, “text-davinci-003.”
    • “prompt”: The initial text or context provided to the model to generate responses.
    • “suffix”: An optional additional text to add to the end of generated responses.
    • “max_tokens”: The maximum number of tokens in the response, with a range between 1 and 4096.
    • “temperature”: A parameter controlling the randomness of the output, with a range between 0.2 and 1.0.
    • “top_p”: A value to control the diversity of the output, with a range between 0.0 and 1.0.
    • “n”: The number of alternative responses to generate, with a range between 1 and 20.
    • “stream”: A boolean indicating whether to stream the response or get it as a whole.
    • “logprobs”: Optional setting for obtaining log probabilities for each token in the response.
    • “echo”: A boolean indicating whether to include the input prompt in the output.
    • “stop”: An optional string that, if encountered in the response, will stop the generation.
    • “presence_penalty”: A penalty value to discourage the model from repeating a specific response, with a range between -1.0 and 1.0.
    • “frequency_penalty”: A penalty value to discourage the model from using frequent words, with a range between -1.0 and 1.0.
    • “best_of”: The number of “n” alternatives to consider and return the best one from, with a range between 1 and 20.
    • “logit_bias”: An optional dictionary to influence the output distribution.
    • “user”: An optional field for specifying a user identifier.
    • “role”: An optional field for specifying a role identifier.

    Config files are found in the same folder as TelegramChatBot. These files must remain in folder or the application will not run.

    Now that you’ve configured the application, open TelegramChatBot.exe and type “start”. That’s it, it should work from here provided you didn’t make any mistakes.

    1) bots.json
    2) completionParameters.json

    https://gist.github.com/MrChrisHammond/936f748666b78f683e065f607507312a
  • This tutorial will walk you through the process of creating a Telegram ChatBot using a .NET 6.0 Windows Console application. The application you will develop through this tutorial will connect with both the Telegram API and the ChatGPT API to enable basic features that merge these two services. The end goal is to host a responsive telegram bot that calls on ChatGPT to provide an answer to a query on Telegram, and also, to create an AI-generated chat conversation with multiple character personalities.

    In summary, this project teaches the following:

    • Learn how to connect and interact with the Telegram API through C# using Telegram.Bot.
    • Learn how to connect and interact with to ChatGPT API through C# using HttpClient and JSON.
    • Understand the basics of HttpClient and JSON serialization and deserialization.
    • Learn how to merge Telegram and ChatGPT services for the purpose of creating a dynamic and responsive GPT chat bot.
    • Learn how to create a fun bot chat where two GPT bots speak with one another through Telegram.

    Step One – Connecting to the Telegram API:

    Firstly, create a new .NET 6.0 or higher console application in Visual Studio. Title it as you wish, I titled mine TelegramChatBot.

    Once the project is created, we need to import the Telegram dependency from NuGet. There are many libraries that exist to help your application interact with Telegram. In this tutorial, I will utilize Telegram.Bot v19.0.0, which you can find and download from NuGet through Visual Studio. Simply open NuGet, search for Telegram.Bot developed by RoundRobin, Poulad, and Tuscen, and proceed with the download Project GitHub here: https://github.com/TelegramBots/telegram.bot

    We’ll also need to create our bots through Telegram. Follow these instructions here, scroll to “How Do I Create a Bot”: https://core.telegram.org/bots#how-do-i-create-a-bot

    Now, create two classes as per the gist code below, ChatBot.cs and TelegramGPTBots.cs. The ChatBot has properties for a TelegramBotClient, bot name, full name, and personality. The class is initialized with an API token and default values for the bot’s name, full name, and personality, and it starts a Telegram bot client. It includes methods for handling updates from Telegram, managing errors, and a placeholder for the ChatGPT reply functionality which will develop in the proceeding steps..

    Within TelegramGPTBots, I’ve initialized two Telegram bots and they are given API tokens, bot names, and other relevant parameters for the creation of a GPT chat bot. A bot client will run independently, and handle updates and communication with the Telegram API while connected. Replace the quoted text, “key”, “botname”, etc, with your Telegram bot info.

    https://gist.github.com/MrChrisHammond/691a754b0dfbec1456cb328c3a4b36e2

    Step 2: Interfacing with ChatGPT API:

    Within this step we’ll create the functionality to connect to ChatGPT. This will require that you have a ChatGPT account and an API key. You can generate and access your ChatGPT API keys here.

    Within your project, create a new class file titled ChatGPT. We will use HttpClient to connect to ChatGPT API and JSON for serializing and deserializing data sent and received.

    What is HttpClient?

    • HttpClient is a class in .NET used to send HTTP requests and receive HTTP responses from a web service or API.
    • In this class, an instance of HttpClient named client is created. It is used to make an HTTP POST request to the ChatGPT API endpoint.
    • The client instance is configured with the API key and other request parameters before making the request.

    DefaultRequestHeaders.Authorization:

    • This line of code sets the authorization header for the HttpClient instance. It adds an “Authorization” header with a “Bearer” token, followed by the API key. This header is used to authenticate the request with the ChatGPT API.
    • By setting the Authorization header, the API key is sent with each request, allowing the API to verify the identity of the sender and grant or deny access accordingly.

    What is JSON?

    • JSON, or JavaScript Object Notation, is a lightweight data interchange format created and used for the purpose of structuring data in an easily transmissible way between client and server.
    • For this project, we use JSON to create a request object with relevant data, like our query and GPT variables, required for interacting with the ChatGPT API. We then serialize that data with JsonConvert.SerializeObject and sent it to ChatGPT.
    • ChatGPT then returns its response with a serialized JSON object, which we deserialize and read.

    Basic ChatGPT Class:

    https://gist.github.com/MrChrisHammond/2ae76ff3dfd59dda010d77b923e5bec6

    Now that we have created the ChatGPT functionality, let us come back to ChatBot.cs HandleUpdateAsync function. In this code segment, an instance of ChatGPT is used to create a chat bot response (variable named gptResponse) when a message contains the bot’s name or when it’s a reply to a message from the bot itself. The message text is extracted and passed as a query to ChatGPT, generating a response based on the defined personality. The response is then sent back to the Telegram chat, effectively enabling the chatbot to engage in interactive conversations.

    https://gist.github.com/MrChrisHammond/dd8e8eed090493c4a9c0f8465e7242fe

    And finally, we need an entry point. Open Program.cs and we’ll write a few lines to start our Telegram bots and handle command prompt entries.

    https://gist.github.com/MrChrisHammond/c569fbe0a8e6b2bbd5c764caa0677f7a

    That’s it, it should work. If you have any issues, the full project can be downloaded on github here: https://github.com/MrChrisHammond/BasicTelegramChatGPTBot

    Remember, this is just a very basic demo tutorial to get you started. You can build from here and have fun with it!

  • Where the ‘flower people’ once lived: My solo-trip to Shanidar Cave

    Within the rugged Bradoastian mountains of Kurdistan is Shanidar Cave, the final resting place of at least ten neanderthal women, men, and children; our ancient evolutionary cousins. These ancient inhabitants occupied the cave as far back as 65,000 years ago. More recently, tens of thousands of years after their passing, their remains were uncovered by archaeologist Ralph Solecki over a series of expeditions to Kurdistan between 1951 and 1960. This discovery and the evidence presented by Solecki broadened our understanding of Neanderthals while also enriching our insights into their behaviour and interactions in social matrixes.

    Preceding the Shanidar discovery, Neanderthals were generally portrayed as primitive and brutish barbarians. However, Solecki’s discovery and analysis challenged this preconception. Solecki had called the Shanidar Neanderthals the flower people after he discovered flower pollen grain deposits adjacent to Shanidar 4 (one of the ten Neanderthal remains found). This intriguing find, for Solecki, suggested Neanderthals may have been ritualistic and performed burial ceremonies with flowers (Solecki, 1977). Although this has been challenged by several contemporary anthropologists, it remains an intriguing argument (Gargett, 1999; Sommer, 1999).

    Further, the Shanidar Neanderthals revealed they were potentially empathetic and cared for one another, and may have formed complex social matrixes. This argument is backed by evidence suggesting some of the remains revealed life altering injuries that would have required help from other Neanderthals for survival (Trinkaus & Villotte, 2017).

    And more recently this year, the hidden mysteries within Shanidar continue to unfold; a discovery from this site has indicated that Neanderthals may have had sophisticated culinary habits. Evidence emerged which suggested the Shanidar neanderthals used pounded pulses as an ingredient used when cooking plant food (Kabukcu et al, 2023), suggesting they had a taste for certain flavour profiles and combinations while preparing food.

    With that in mind, the Shanidar Cave discoveries represents a profound window into the depths of our evolutionary history, shedding light on the lives and adaptations of our ancient relatives; they have challenged the traditional view of Neanderthals as primitive, revealing evidence of potential ritualistic behaviour with flowers, signs of empathy and care within their community, and recent findings suggesting sophisticated culinary practices, collectively reshaping our understanding of their complexity and social lives. Therefore, I absolutely had to make the drive up to Shanidar and see the cave for myself – which I did, as an exciting solo journey.

    Driving to Shanidar from Erbil

    My drive to Shanidar was peaceful and relaxing. I found Maps.Me to be tremendously helpful app for directions and I’d recommend it in Kurdistan. In my experience, while I originally used Google Maps, I quickly discovered it is not up-to-date and gave me wrong directions. Around Ankawa and other parts of Erbil, Google Maps mistakenly thinks that several intersections exist that do not as they are blocked off with concrete barriers; in comparison, Maps.Me did not have this issue.

    On the journey from Erbil to Shanidar is Shaqlawa, a beautiful little town adjacent to the Safeen mountains, enveloped by vineyards and orchards. Its main street is adorned with an abundance of beautiful and cozy shops, cafes, and restaurants. Even more, perched along the Safeen mountain by Shaqlawa is the Shrine of Raba Boya, originally a hermitage where monks once lived, it later became a shrine. Raba Boya is said to be capable of granting fertility wishes to those who wish to make a family (Mesopotamia Heritage, 2019). And while the town was once home to a sizable Christian community, their numbers have dwindled away in recent years (Martin, 2018). Nevertheless, I’d highly recommend paying this town a visit and spending an evening there, as it truly comes alive at dusk. It’s undeniably a beautiful town and a great place for tourists.

    Continuing, I made my way up to Erbil Soran Rd and then Erbil Barzan Rd. Barzan Rd was very quiet, with the beautiful Zagros mountainous landscape surrounding the road, rural communities scattered throughout the region. As is common in Kurdistan region, there are farm animals that sometimes wander onto the road, which I encountered more than a few times.

    Arriving at Shanidar Cave

    View from within Shanidar Cave looking outward towards the southern valley. In the distance flows the Great Zab river.
    View from within Shanidar Cave looking outward towards the southern valley. In the distance flows the Great Zab river.

    Upon arriving at the base hill leading up to the cave, I was greeted by peshmerga stationed to protect the cave and surrounding area. They waved me in and I drove up to the main parking area, where I parked my car. The parking lot was nearly empty, with one other vehicle being loaded up by a family on their way out.

    Stepping out of my car, my initial expectation was that the cave would have been a moderate hike up without any clear defined man-made pathway. To my surprise, the area in front of cave had been transformed into a family park with concrete and stone pathways and stairways, gazebos, benches, and even a monument dedicated to Ralph Solecki.

    I embarked on my hike, enduring the hot Kurdish sun, stopping occasionally to hydrate. Despite the presence of stairs, the elevation gain to get to the cave combined with the heat required a few breaks in the small gazebos built along the way.

    As I approached near the cave, I opened a small fenced gate that lines the cave entrance. I entered, moving from the sun into the increasingly dark shadows. This cave has protected occupants for tens of thousands of years; it has provided shelter to local Kurdish herders in more recent times, and pre-history, provided shelter for Neanderthals. Now, here I stood, protected from the exterior elements.

    Shanidar Cave excavation site.
    Shanidar Cave excavation site.

    As I entered the cave, I glanced down the excavation site, which is towards the front of the cave and surrounded by additional fencing. Unfortunately, some litter had been carelessly discarded into the excavation site. Gazing down into the excavation, it dawned on me how deep within the sediment the Shanidar Neanderthals were buried, with soil, debris, and rock falls covering them over time. Down within this excavation, the remains of ten Neanderthals were unburied. While some had died by rockfall, as argued by Solecki, others arguably were buried by burial rites (Solecki, 1977).

    Shanidar Cave ceiling rock formation.
    Shanidar Cave ceiling rock formation.

    Using my mobile phone as a flashlight to see, I ventured deeper into the cave. The cave is vertically large, and fairly wide, yet it becomes dark quickly even with such a large entryway allowing sunlight in. I explored around, wandering around the edges of the cave before making my way towards the front again.

    Before exiting, I stood by one of the rock walls and placed my hand upon it. I closed my eyes and tried to imagine the life of Neanderthals in the cave way back. Looking out into the landscape surrounding may have provided a slightly different view of than today, due to differing climactic conditions and the transformation of the landscape from human activity. At the time of the Neanderthals some 45,000 to 60,000+ years ago, it is estimated that there was a greater level of flora favouring arboreal vegetation due to more moist climactic conditions (Solecki, 1977). Herds of goats and sheep often graze the landscape, consuming vegetation, and the relatively sparsely spaced oaktrees remain smaller in size, perhaps partially due to farmers feeding their livestock branches from the trees. At the time of Neanderthals, potentially a greater source of moisture came from the glacial period and prevailing westerly winds moving through the Zagros mountains, bringing moisture from the Mediterranean (Solecki, 1977) and with it, providing conditions for a greener landscape.

    Photo of Chris placing his had on the eastern wall of Shanidar Cave as he takes a moment to imagine the life of the Shanidar neanderthals.
    Placing my had on the eastern wall of Shanidar Cave as I imagine the life of Neanderthals.

    Considering more recent history, I also contemplated how the landscape surrounding Bradoast may have had a different fate as it came close to being within the vicinity of dam waters. In the late 1980s and early 90s, former plans put on hold from decades earlier to build a dam across the Greater Zab River were revived and weaponized by Saddam Hussein and his Baathist regime, who intended to use the water to flood out land that belonged to the Barzani tribe in part of a campaign of retribution against the Kurdish people. Weaponizing the landscape as a method of retribution and to attack locals was not new to the Saddam regime. Around the same time, in Southern Iraq, a system of canals and barrages were built to force out the Marsh Arabs, leaving their land and way of life destroyed (Khadr, 2019) in what may even be described as an ecocide-driven genocide. It is estimated that Marsh Arabs in the 1950s had a population of nearly half a million; however, Saddam’s campaign to destroy them had caused their numbers to dwindle to as low as 20,000 by 2003, with many being displaced to camps, and others executed (Khadr, 2019). In similar fashion, the Bekhme dam project was revived with the intention of significantly hurting the Barzani tribe, destroying land owned by Mulla Mustafa Barzani, the leader of the Barzani tribe (Solecki, 2005).

    The valley just south of Shanidar Cave and Bradoast Mountain. Small oak trees are observed with most of the grass surrounding dried out. Each spring, this area comes alive with green grass and some wild flowers; however, by autumn, everything has dried out due to arid climactic conditions through the summer.
    The valley just south of Shanidar Cave and Bradoast Mountain. Small oak trees are observed with most of the grass surrounding dried out. Each spring, this area comes alive with green grass and some wild flowers; however, by autumn, everything has dried out due to arid climactic conditions through the summer.

    In the context of Shanidar, the building of this dam would have isolated Shanidar cave and flooded the lower lands nearby, making access to the cave difficult. In addition, important archaeological sites would likely have been flooded over, including an 11th century BC village, known as Zawi Chemi Shanidar; monasteries, and a synagogue site (Solecki, 2005). Destruction of these important sites would cause significant damage to important sites, representing a substantial impediment to our understanding of culture, history, and prehistory. Thankfully, this never came to fruition.

    However, recently there are discussions to revive the Bekhme dam project. During an interview this past July, Midhat Zwayen, Director of Dijlah Consulting Engineers, suggested the dam should be completed (Menmy, 2023). And if the dam construction continues once more, this will, again, bring into question the risks stated earlier. The dam would likely result in flooding around Shanidar cave, displacement of approximately 20,000 people, and loss of the 11th century BC village Zawi Chemi Shanidar (Kehreman, 2006). Displacement of such a significant number of people is likely to be problematic when across Iraq, including Kurdistan region, large camps of internally displaced peoples already exist, to the tune of approximately 180,000 people (UNHCR, 2023).

    Exiting the cave

    During my walk back to the car, the two peshmerga at the entry checkpoint had walked up the path to greet me. As I approached them, they began talking to me. I couldn’t understand the questions they were asking and without mobile phone signal to translate through Google, we defaulted to acting out what we were trying to express. They first pointed to my camera tripod bag, a long black nylon bag with a black arm strap that could be mistaken for any number of other things – like a bag for measurement instruments, or possibly a rifle bag. I became a little nervous and the look on my face probably revealed as much. I opened the bag and showed them the tripod; they understood it was for my camera. The entire time they were very friendly and not aggressive. Once they understood I had a camera, they gestured they would like for me to capture their photo. I obliged.

    Friendly Peshmerga greeting me on my walk down from the cave.
    Friendly Peshmerga greeting me on my walk down from the cave.

    At first they stood together with stiff grins on their faces. However, after taking a couple of photos, the one in the Kurdish beige outfit wanted his own individual photo taken. He knew how to position himself for a good photo, and in fact, I would later use his stance for my own photos.

    From there, the man in the beige suit held his phone out and signalled he would like for me to send him the photos. I somehow had to explain I had no signal but I would take their number and send it later when I could. I pointed to the status bar on my phone showing no signal; they understood. He opened viber and indicated to add him on viber. Later that day, when I arrived home, I asked a friend to type a Kurdish message for him and I attached the photos and sent.

    ئيواره باش. خوش حال بوم به ناسينى جه نابتان، ئه وه ره سمه كانته. هيوادارم به دلتان بي. كاتيكى خوش.

    Good evening, I hope you’re doing well. I had the pleasure of meeting you. These are your photographs, I hope you like them. Have a nice time.

    I was hoping to hear back from him, but unfortunately the message went unread for quite some time. Fast forward two years, in June of 2023, I received a reply:

    ده ست خوش بیت برا

    Thank you brother.

    References

    Gargett, R. H. (1999). Middle Palaeolithic burial is not a dead issue: The view from Qafzeh, saint-césaire, kebara, Amud, and Dederiyeh. Journal of Human Evolution, 37(1), 27–90. https://doi.org/10.1006/jhev.1999.0301

    Kabukcu, C., Hunt, C., Hill, E., Pomeroy, E., Reynolds, T., Barker, G., & Asouti, E. (2022). Cooking in caves: Palaeolithic carbonised plant food remains from Franchthi and Shanidar. Antiquity, 97(391), 12–28. https://doi.org/10.15184/aqy.2022.143

    Kehreman, B. (2006). (rep.). Report I Bekhme Dam. Report I Bekhme Dam. Retrieved from https://web.archive.org/web/20110721200314/http://www.envirozan.info/EZ_Docs/Dams/Bexme_Dam_Report.pdf.

    Khadr, A. (2019). Iraq: ‘Women are the backbone of the Marsh Arab community – as the effects of climate change are becoming more visible, it is becoming clearer that women are the first to suffer.’ Minority Rights. https://minorityrights.org/programmes/library/trends/trends2019/iraq/

    Martín, I. S. (2018, June 16). Transformation of Iraqi village a warning about anti-Christian tides. Crux. https://cruxnow.com/crux-nineveh/2018/06/transformation-of-iraqi-village-a-warning-about-anti-christian-tides

    Menmy, D. T. (2023, July 31). Iraq’s two main rivers will vanish if new dams not built. The New Arab. https://www.newarab.com/news/iraqs-two-main-rivers-will-vanish-if-new-dams-not-built

    Mesopotamia Heritage. (2019, July 10). Shrine of raban boya in shaqlawa. Mesopotamia Heritage. https://www.mesopotamiaheritage.org/en/monuments/le-sanctuaire-de-rabban-boya-shaqlawa/

    Pomeroy, E., Bennett, P., Hunt, C. O., Reynolds, T., Farr, L., Frouin, M., Holman, J., Lane, R., French, C., & Barker, G. (2020). New neanderthal remains associated with the ‘Flower Burial’ at Shanidar Cave. Antiquity, 94(373), 11–26. https://doi.org/10.15184/aqy.2019.207

    Solecki, R. S. (1977). The implications of the shanidar cave neanderthal flower burial*. Annals of the New York Academy of Sciences, 293(1), 114–124. https://doi.org/10.1111/j.1749-6632.1977.tb41808.x

    Solecki, R. S. (2005). The Bekhme Dam Project in Kurdistan Iraq: A Threat to the Archaeology of the Upper Zagros River Valley. The International Journal of Kurdish Studies; Brooklyn , 19(1/2), 161–VII.

    Sommer, J. D. (1999). The shanidar IV ‘flower burial’: A re-evaluation of Neanderthal burial ritual. Cambridge Archaeological Journal, 9(1), 127–129. https://doi.org/10.1017/s0959774300015249

    Trinkaus, E., & Villotte, S. (2017). External auditory exostoses and hearing loss in the Shanidar 1 neandertal. PLOS ONE, 12(10). https://doi.org/10.1371/journal.pone.0186684

    UNHCR. (2023, August). Iraq – Operational Data Portal. https://data.unhcr.org/en/country/irq

  • Guide to solo driving through Kurdistan Region of Iraq

    In the KRI, visiting anywhere outside of the city is easiest by car. While it is possible to travel by taxi or bus to other towns and cities, having your own vehicle will give you access to remote and beautiful areas that are not otherwise accessible. In this article, I will discuss my experience of renting and driving through the beautiful Kurdish countryside.

    Renting a car

    There are dozens of car rental agencies in Erbil, the catch is that most are offline and require booking over the telephone or visiting their office. If you’re looking for a deal, stay away from companies like Hertz or Avis; they’ll charge you 2x to 3x more than local rental companies, plus, you should support local small businesses. When I was in Erbil, I rented from Param. The rate they gave me was amazing, and the owner was extremely friendly.

    South side of Korek Mountain, Kurdistan

    I found Param after searching across the internet, reading Google reviews, and checking out several rental agencies on Instagram. On Erbil International‘s facebook group, Param was recommended. I called ahead of time and they advised to come in on the day I wanted to rent.

    The process was relatively easy; I filled out some papers, they scanned my passport ID page, and I paid in cash (rental fee + damage deposit). There was one small hiccup – the owner asked to hold onto my passport, which I refused. Driving around Kurdistan means you’ll be going through countless military checkpoints that frequently ask for identification. Without ID, it’s likely you’ll be detained, and possibly end up in jail. I was a little surprised the owner asked this given that he should know better, but after I refused, he agreed he didn’t need it, and there weren’t any other problems.

    When renting, also make sure you request a collision damage waiver. In the KRI, car insurance isn’t available for local drivers, however, the rental agencies usually provide some form of insurance. I’d highly recommend it given that the roads are filled with less-than-stellar drivers and you don’t want to be liable if the car is totalled.

    Finally, if you’re unsure about driving here – don’t do it, or at the very least, take your rental out in the morning when traffic is lighter and practice for an hour. Afternoon and evenings are when traffic is the heaviest in Erbil, and this is when the roads are the craziest. If you’re prone to panic, it’s going to be a rough ride for you. Vehicles on the road will swarm you, flying by as they dangerously race well above the speed limit. While driving around KRI, I witnessed the aftermath of two fatal head-on collisions that occurred moments before I arrived. Often careless drivers are racing to pass one another and not paying attention to oncoming traffic.

    Things to watch out for

    On highways, sometimes you’ll encounter vehicles driving in the wrong direction. It’s pretty normal in KRI.

    You’re going to want to pay attention at all times, not only to other vehicles but also to traffic cameras and the dreaded speed bumps. Even more, when driving through cities, pedestrians expect you to stop for them to cross – so watch out. This isn’t like other countries where cars are given priority, in KRI it is expected that you will slow down and stop for people crossing, and many times, they’re not going to be paying attention to you if it’s a crowded suburban road.

    Speed bumps can catch you off guard. While great for slowing traffic down, they also have a habit of destroying the underside of a car if you hit them when going too fast. Based on my experience, there’s a significant number of unmarked speed bumps on rural roads, many of which I hit while driving between Erbil and Dukan. In the day, they’re easy to spot – but driving around at night, they can be very hard to see until they’re right in front of you. Given most rural roads you’ll be driving 80 to 120km/h, you won’t have time to slow down if you approach one; so, just assume that anytime you’re about to drive through an area with a shop or house on the side of the road, you’re probably going to encounter a speed bump. Grill that into your head if you plan on driving the countryside for more than an hour.

    Also, traffic cameras are everywhere and most of the time, they’re marked with a sign. In November I noticed an increasing number of temporary speed cameras operating on the back deck of police pickup trucks. These are usually completely unmarked, and not easy to see ahead of time. If you pass a speed camera and notice a flash, you’re likely going to receive a traffic ticket a few weeks later.

    Choosing the correct fuel

    Gasoline in the KRI is not the same octane as Western fuel. It is much lower grade and does not include engine cleaning additives. I once asked if Iraqi fuel has cleaning detergents included and was laughed at. I can only imagine they thought I was talking about adding soap to the fuel. ? In the West, most fuel includes chemical additives called cleaning detergents that clean the engine, allowing for cleaner combustion and less emissions. Nonetheless, that is not the case in both KRI and federal Iraq.

    With that said, given the fuel is a lower grade and not nearly as clean, it’s best not to let fuel go below a quarter tank so the debris doesn’t build up as much along the bottom of your tank near the filter. Given you’re using a rental, it likely won’t be a problem for you – but at least you’re extending the life of the fuel filter for the rental agency.

    When arriving at a gas station, many times an employee will be there to fill it for you. Most of the time, they won’t know English so you’re going to want to learn how to say it in Sorani or Arabic. For me, I chose Sorani given it’s respectful to speak the Kurdish language in Kurdistan.

    To ask for normal fuel, you can simply say “kaka, benzine fulika adii” or “kaka, fulika normal”. This means “sir, please fill with normal/regular gasoline”. If they don’t understand, you can sometimes get away with “adi full” or “normal full” (pronounce full as fool) and maybe two out of three times, they’ll understand you. The worst case scenario is that you may have to use Google Translate text-to-speech in Arabic. And yes, I’ve done this and had full-on conversations through Google text-to-speech, going back and forth from English to Arabic with a taxi-driver.

    Military checkpoint etiquette

    US military convoy passing by.

    There are many military checkpoints around Iraq, and for Iraqis, they’re a part of daily life. Unfortunately, they are a necessity in a country that has dealt with numerous conflicts and crises, including ISIS and other violent regional actors. When approaching a checkpoint, have your passport ready. I’ve found that when driving to the south of the KRI, they check passports more often, however, driving up in the northern regions like Shaklawa, Barzan, Duhok, and Amedi, they don’t check as often.

    When you approach a checkpoint, remove your hat and sunglasses, turn your headlights off if it’s night, and open your window. The guards are usually very friendly. Several times I’ve joked around with them, and often times they were surprised to see a Canadian driving out in the middle of nowhere up in Barzan area.

    Other things to be mindful of:

    Erbil -> Duhok highway

    One October evening, late at night, I was driving home along a highway between Duhok and Erbil. I didn’t realize I was entering a section under construction as there were no visible signs indicating the highway was about to end. The night was dark and there was no traffic around me other than one vehicle driving on the wrong side of the highway in our lane. I should have taken that as a warning. A moment later, as I was driving along at 100km/h, I suddenly realized the road ahead disappeared – the road was incomplete. I slammed the brakes and just narrowly avoided driving off the highway into sand and rocks ahead. It turns out that the other vehicle we just passed had also had the same experience.

    With that in mind, it’s always best to drive with caution and I’d recommend taking someone who is experienced. The main concern with driving in the Kurdistan region of Iraq is not security, but rather, being mindful of other drivers and varying road conditions that require consistent vigilance. With that said, having a vehicle to drive around the countryside was a tremendous benefit and allowed me to access parts of the country that were not accessible by other means. Good luck and I hope you enjoy your journey.