Uncategorised

Community Engagement Assignment

Locate an organization that is working on one or more of the issues highlighted in this class. Interview the people at this organization: What is the name of the group? What is its mission or goal? How does it carry out its work? What is your sense of the effectiveness of the group? Include a personal comment about your visit.
Write a short report of 4-5 thoughtful paragraphs about the organization.

Having lived in both Canada and Iraq, the organisation I chose is the Shaghaf Team, which works in partnership with the Iraqi Al-Amal Association, with funding from the Norwegian Embassy in Amman. The two organisations are currently running a volunteer campaign across Iraq to promote women’s rights and combat gender-based and domestic violence. I interviewed Shayan K., co-founder of the Shaghaf team. We discussed an upcoming event they’re organising to raise awareness of domestic violence in Kirkuk and build support for upcoming legislation to combat it.

As it stands, it’s almost impossible to pass legislation to combat domestic violence. The Iraqi parliament attempted to pass a domestic violence law in 2019 and 2020, but it was blocked by a large number of elected ultra-conservatives who oppose the bill. The members who blocked the legislation believe that perpetrators of domestic violence should not be punished by the state, including those who have committed horrific acts of so-called ‘honour’ killings. In fact, the Iraqi Penal Code currently legalises domestic violence through Article 41, which gives men the power to punish their wives and children. In addition, (dis)honour killings are effectively legal under Article 128(I), which makes ‘honour crimes’ a mitigating circumstance in sentencing and punishment. Unfortunately, there are significant differences between East and West perceptions of human rights, with many Eastern religious conservatives attacking human rights advances as Western imperialism (HRW), arguing that they trample on local culture. However, this and other arguments put forward by opponents often boil down to patriarchal beliefs that perpetuate an unjust system that favours men.

In my conversation with Shayan, I learned that she is working on a booklet for Shaghaf Team/Al-Amal. This booklet briefly outlines basic statistics on domestic violence and defines it very modestly. It’s a simple, cursory overview of the basics of domestic violence, but if you can read Arabic, you’ll notice that it’s relatively light on details. There is a reason for this, as there is a real fear that local men will resist, leading to protests and potentially damaging the chances of passing legislation to combat domestic violence. Shayan tells me that NGOs and rights activists walk a fine line in disseminating information without provoking a backlash.

My sense of the effectiveness of the group is that there are enormous barriers that make it extremely difficult to change minds. Just talking about issues of gender-based violence such as marital rape is extremely difficult due to the taboo nature of such topics, compounded by the fact that many men feel it is their religious right to commit such acts. These beliefs about domestic violence are so normalised that many local men and women struggle to understand even the basics of women’s rights. Sadly, men often feel it is their right to perpetrate abuse, often without understanding that certain acts are abuse at all.

When I spoke to Shayan, she talked about how men often dictate a woman’s life. Many men often tell their partners what to wear, either directly or implicitly through coercive and manipulative language. Similarly, a woman’s privacy is often invaded, with men, even in younger relationships, randomly turning up at their partner’s engagements to make sure their wife is where she said she was going to be. There is a lack of understanding that this behaviour is psychologically abusive and harmful to women. Polygamy is also relatively common and many men maintain multiple marriages, particularly in the more conservative regions of the country. Women are often kept economically dependent on men through a lack of employment opportunities and socially enforced conservative gender roles that keep women in the home as caregivers. With this in mind, Shayan tells me that it is a struggle to gain basic rights, as many men do not want to lose their privilege to dictate the lives of their wives, but also fear reprisals for abuses committed.

Shayan and I also discussed the major hurdle of the lack of shelters for women trying to escape domestic violence. The Anti-Domestic Violence Laws of 2019 and 2020 would have forced the government to build women’s shelters across the country. This is particularly important because families and the police in Iraq often take a conciliatory approach, trying to negotiate the reunion of partners rather than helping women escape violence. Unfortunately, such an approach puts women right back in the hands of violent and abusive partners. Until such legislation is passed, women hoping to escape domestic violence will have no way of getting to a safe place. For Shayan, this is the sad reality of advising women about domestic violence, but not being able to provide immediate relief to women who are currently facing these problems.

HRW. (2020, October 28). Iraq: Urgent need for domestic violence law. Human Rights Watch. Retrieved February 23, 2022, from https://www.hrw.org/news/2020/04/22/iraq-urgent-need-domestic-violence-law

Visa on Arrival and renewal guide for tourists in Iraqi-Kurdistan

View from the south-west side of Mount Korek, October 2021.

September 2023 Update: The KRG now hosts a new Visa E-Portal, therefore some elements of this post may no longer be relevant. I have not yet used the e-portal, but when I do, I’ll provide a write-up.
—-
This past autumn I spent three wonderful months in the Kurdistan Region of Iraq, and it changed my life forever. I met the friendliest of people, hiked some of the most incredible trails, and visited several of the oldest historical sites in the world, dating back over 6000 years.

Now that I’ve returned home, I want to document my experiences and publish, what I think, will be a series of helpful guides for others who wish to visit Kurdistan.

A quick note – I wrote this article in December, 2021. It should be accurate for now, however, things within the KRG change frequently – so keep that in mind.

Obtaining Visa on Arrival in Erbil:

Recently, the KRI simplified the visa process for most Western citizens by providing Visa on Arrival (VOA) (list of countries here). The VOA for tourists includes up to two tourist visa renewals for a total of 90 days (30 day visa-on-arrival , 2 x 30 day visa extensions). If your country is on the list, the VOA process is simple – upon arrival at Erbil International Airport, you will make your way to the visa and customs desk. There, you’ll present your passport and pay a $75 USD visa fee. They’ll take your photo, complete some paperwork, and then stamp your passport. Make sure you have money ready ahead of time because there won’t be an ATM available to you. Likewise, have extra cash for the airport taxi before you arrive. The KRI is not a western country, they operate primarily with cash – finding an ATM can be difficult if you don’t know where to look (I’ll be making a post about this soon).

Tip: Some airlines have outdated documentation that isn’t wholly accurate on KRI. Both in Toronto and Dubai, I had to patiently explain to Emirates airline that the Kurdistan Regional Government provides a VOA for Canadians. I would recommend you print out this list here and highlight your country, so you can present it to the flight attendant if they question you. To be honest, the hardest part about my journey was convincing the Emirates attendant at the Toronto check-in desk that I’d be granted VOA in Erbil.

Renewing your tourist visa:

If you want to stay longer than thirty days on a tourist visa, you’ll require a visa extension from the KRG Residency office. Many people opt to pay a lawyer to handle this, which is likely easier; however, finding a real lawyer and not someone trying to scam you on Facebook can be difficult if you don’t have any local connections. If you want to avoid paying lawyer fees, you may renew your tourist visa on your own by following the guide I’ve prepared below. I should note that paying a lawyer likely won’t cost you too much, so it may be easier to go that route.

In addition, if you don’t speak Sorani or Arabic, you’re going to want to follow these instructions closely otherwise you’ll end up lost and frustrated. It took me three attempts to finally have my visa renewed, partially because of misinformation provided by people trying to be helpful, but also because there are very few resources available explaining this process and I had to use the trial-and-error method to figure it out.

How early may a tourist visa be extended?

Based on my experience, the KRG officers would only extend my visa on the day it expired with the only exception being if the expiry date fell on a weekend or holiday. I tried twice to renew in advance, and both times they turned me away and told me to come back on the day of expiry. This leaves things very tight, and if you go beyond the date on your visa then you may be hit with a fine, or worse, they may not renew your visa and instead deport you. If the expiry date is on the weekend, they will renew it on the last day of the week. Weekends in KRI are Friday and Saturday, NOT Saturday and Sunday.

Where are visas extended?

The KRG Residency office is located here on Abdulkaleq Sarsam Street, near Life Towers . Right now, Google Maps will give you the incorrect address if you search it and you’ll end up at the wrong building. Make sure you arrive by 8:30am, and once they open, make your way into the security station (the second one past the gate). You’ll have to leave all electronics with security, including your phone. In exchange, they’ll give you a tag with a number and you’ll use this to collect your electronics when you leave.

This satellite image is a little old, the parking lot is now paved – however, you get the jist of where to go. This is accurate as of December, 2021.

Important note: If you arrive before they open but during a busy time of year, you may have to line up outside first, and they will separate you by gender. I highly recommend you arrive early, or you may be turned away. When I was there in September 2021, there were at least a hundred people waiting to get in. It was mostly Iranian and Turkish citizens renewing their visas (Salam salam!).

Finding your way through the KRG Residency building:

Continuing, after you make it past security, walk towards the main building. Upon entering, head up the stairs to the second floor and once at the second floor, turn right and walk down to the end of the hallway. You’re looking for room 12, located at the very end of the corridor. When you enter room 12, approach the first desk directly in front (sometimes it has a #2 on it) and show your passport visa page. You’ll be given a form to fill out with your name, address, and contact number of someone local. You can write your hotel telephone number.

Tip: Before you arrive at the residency office, write down a local contact number and address on a piece of paper and keep it in your pocket. Also, bring a pen (you’ll need it). You won’t have your phone with you since it is held by security while in the residency building, so you can instead refer to your pocket note when filling out the visa renewal form.

Payment for visa extension:

After filling out the form, you’ll return it to the same desk, and the desk agent will fill out the bottom with the visa fee price. At the time of writing this, the price is 110,000 IQD ($75 USD). I’d recommend bringing dinars to pay, and bring extra in case the price has increased. You’ll then have to head down one floor to room 10. There, you’ll pay the fee, they’ll stamp your renewal form to indicate payment was completed, and then you may return to the second-floor, room 12.

Important note if you visit during the tourist season: If it’s a busy time of year for visa renewals, they may have a desk within room 12 where you will pay the visa fee. If that’s the case, then you won’t have to go down to room 10. When I renewed in October 2021, they added a desk on the left by the entry to room 12. However, when I renewed again in November 2021, during off-season, this desk was removed and I had to pay on the first floor (not ground floor), room 10.

Visa extension processing:

After payment (and returning back to room 12 if you had to leave), drop off the form along with your passport at desk #4 (the one in the corner on the right). Within 10 to 20 minutes, the agent will likely have processed your passport and then you’ll bring it to the first office (on the left side of the room). Inside you’ll find a KRG officer who will stamp your passport and write a date on it.

Once this is complete, bring your passport to the next room attached to room 12 on the right. In this second room are female KRG agents along with a higher ranking KRG officer sitting by the entrance. In there, they’ll give your documents a final lookover and press some buttons on a computer. After that, you’re ready to go, and they’ll say “Welcome to Kurdistan” – even if it’s your second visa extension. 🙂

Tilemap bitmasking

As a game developer, bitmasks are useful when it comes to representing a set of data with single digit in both 3d and 2d games. An illustration of this in use in three dimensions can be found within the well known voxel game minecraft. The current status of a block may be represented with a bitmask value to indicate whether it is open or closed when considering blocks adjacent to it. For a given voxel if one (or however many) side(s) is open but surrounding sides closed, perhaps you wish to show a grass texture or only render one side – that voxel would have a bitmask value based on what surrounds it and we can use that to determine how it should render.  If the voxel is completely surrounded, it has a different bitmask value and perhaps you wish not to even render voxels with a bitmask value that indicates it should not be visible. In this usage scenario, what this bitmask value tells you is whether the voxels on each side are open or closed – and this is all saved with a single bit. In other words, through a single bit you are storing a set of data that would otherwise require more memory!

In a 2d game this has all sorts of usage scenario’s too. For example, when it comes to tilemaps and placing tiles there is a huge benefit to storing data represented as a bitmask value. For example, a fence – having a single fence tile may have a stand alone sprite to display, however, placing two fence pieces beside each other may require two different tiles drawn to line up. This means that an algorithm will have to determine the surrounding sides to decide which fence piece should be rendered (i.e. an end piece, middle piece, L shape, etc). We can use a simple calculation to determine this for a 2d tilemap:

With this simple equation, we will then know which tile to display. Below you can see it in action in my game Attack of the Dead – I’ve replaced the wall tiles with some dummy tiles to show the bitmask value for illustration. The variables left, down, right, and up are simple boolean values to indicate whether there is a tile at these positions surrounding the tile you are calculating for.

The textures to display the tile may be named according to the bitmask value for easy organization, or alternatively, you may assign a tile to display based on the bitmask value of that tile and organize your atlas based on the bitmask value.

If you need a quick 4 tile bitmask chart, I’ve thrown one together on JSFiddle below. You can easily modify this for using 8 tiles or whatever suits your needs.

Boids – 2D Unity Approach

Boid's model was created in 1986 by Craig Reynolds to simulate the behaviour of birds as they group together in a flock. The model has three key methods to mimic real life bird flock behaviour. These methods include: a) Maintaining a heading based on the averaged direction of surrounding boids. b) Maintaining a separation so boids do not overlap. c) The boids must maintain a cohesiveness with the flock by steering towards the centre position of surrounding flockmates. The behaviour also operates similar to schools of fish or other wildlife. As a game developer, this can be useful when implementing enemy mob behaviour and in my case, I used this approach to simulate flocks of zombies in 2d space as seen in the mp4 above. The concept isn't too difficult, below I've posted two implementations. I've implemented it using rigidbody2d but I've also included the code for using it without rigidbody force.
  1. Boid Class for use with Rigidbody2D
https://gist.github.com/MrChrisHammond/bb97ba2b25dbb95dad6cc980132bc31f
  1. Boid Class for use with kinematic
https://gist.github.com/MrChrisHammond/91c12806aeea0a25d8a68e6e81776955

Simple Unity Android VR controller setup for Xbox 360 Controllers

It is no longer required to download the Android VR SDK to build a mobile VR game or application for Unity. Instead, you can set your game up in the Unity build settings and make use of UnityEngine.VR.

Creating a simple player controller may be a bit tricky and so I hope this post will save some developers a head ache when it comes to moving a player around with a gamepad in Android based VR projects.

In this setup, I’m using the following:
1 x Android 6.0 Phone
1 x XBOX 360 Wired USB Controller (but you can use any Android VR controller)
1 x Generic Android VR Headset

To begin, it’s important to understand that you have to create a parent and child arrangement of GameObject’s to control a VR player. Whereas generally a simple FPS controller might be arranged with a Camera as a child to a Capsule, with Unity VR you’ll have to child the Camera to a Camera parent Transform and that Camera parent will be a child to your main player. Even more, the Body of the player will have to be a separate child Transform of the parenting Main Player GameObject if your player has a body. Why? This is done to control the movement of the Camera since moving the Camera Transform directly in VR seems to result in odd behaviour/non-functioning movement at the time of this post.

Here is how your basic Main Player hierarchy should look:

Step 2:
Attach a camera to the Camera GameObject.

Step 3:
In your input settings, add two new axes. For the two different Android phones I tested, the Xbox 360 controller I had seemed to map to these axis:

Step 4:

Create a new script and call it SimpleVRController.cs Use the code below then assign the proper transforms in the inspector.

Unity 2D Target Scanner

Target scanners are essential for any game where you have an enemy mob that actively looks for prey. One way to scan for targets is to cast a circular physics ray based on the radius area you would like to scan.

Below is a quick and helpful intro I’ve put together for anyone who needs a quick and easy target scanner to notify another script via event subscription. It searches for targets based on the tags set through the Unity Inspector.

How to use from another script:

 

Final notes:

This is a simple solution if you only require a few dozen scanners running at a time or less. If you have many more running concurrently then using tags may be slower and I would recommend scanning based on Unity Layers. You can set which layer to RayCast2D on or alternatively, you can set in Project Settings -> Physics 2D and set which physics layers interact with one another.