Can Colonialism Be Encoded?
This text is looking into the recent leaked source code of the biggest IT corporation, which is very close to russian government. The source codes of the Yandex company were copied in July 2022 and published on the Internet on January 25, 2023. The size of the leak is 44.71 gigabytes. Yandex services, whose algorithms were published, include maps, electronic assistant, taxi, web search engine, mail, cloud storage of documents, marketplace, travel agency, electronic payments, and delivery — tools that can cover needs of a modern paying user.
Below is a script for the video that was made as supplementary material for sessions of collective reading of the code in the frame of the School of Algorithmic Solidarity. The script consists of excerpts from the leaked algorithms, screenshots from the video materials, as well as short texts that position the algorithms in a broader, not only technical, context.
For the reading sessions we have made a counter search engine to navigate through the codes. It is running on our server, which we turn on and off due to the huge amount of data. If you need access to the counter search engine, please contact us.
Session in Humboldt University of Berlin / by eeefff
What is the School of Algorithmic Solidarity?
The School of Algorithmic Solidarity focuses on the infrastructures of colonialism and the infrastructures of solidarity opposed to them. Explicitly focusing on infrastructural time, algorithmic abstractions, and bodies. In terms of form, it can be a collective experience / radical pedagogy practice / walk to the specific location / LARP protocol / digital togetherness / open-ended situation / affective temporary training zone.
Session with decolonial research laboratory Mycelium in SDK Słonecznik / Warsaw / by eeefff
What are the reading sessions of the leaked code?
A temporary community gathers. They are sitting on the reused structures of installations that previously occupied the space before their arrival, chilling on green fabric. They are simultaneously here and there. For 'here' they have food, drinks, laptops for collective usage. For 'there' a small video cam is responsible, that looks at gathered readers of code lines, and cuts them from a background. Their bodies virtually sit on streets, future block-houses that are in the process of construction, hill with a mine underneath, and ... They are asking questions: Where is there a public space to debate, to contest, to confront the code that was leaked by a former worker? Did this worker want to reveal something important? Why are all the dates in the leak the same, coinciding with the start of russia's full-scale invasion of Ukraine? They do not know the answers, at least, they do not know the answers alone. Maybe these temporary gatherings, sittings, readings, swipings, and tiredness could be a collective attempt to do something with 44.71 gigabytes.
Script
Conditions of war
conditions.pb.txt
Conditions {
Tag: "war"
Check {
# update according to the situation
Expression: "0"
}
}
This file contains settings for an electronic assistant.
Electronic assistants are boxes that install corporate algorithms inside private spaces. Users of these devices have different attitude towards them, boxes are made a fetish in different ways: sometimes by their appearance, sometimes by inner electronics.
The file is stored in the folder "hollywood" and then in the folder "fast_data". The file contains conditions that determine the behavior of the electronic assistant.
For example:
- Morning or Evening?
- Winter or Spring?
- Is the user an Adult or a Child?
- Is it necessary to show only news from Belarus, Kazakhstan, Uzbekistan and Russia?
- Is it New Year's Day now?
The conditions are usually explained to children through visual metaphors.
On the screen, you can see one of the conditions: the control of the electronic assistant's behavior in case of war. It is the programmer's responsibility to change this parameter. 0 - electronic assistant behaves in a way as if there is no war. 1 - the algorithms of war time are on.
Here is a simulator of the work of IT industry. Here it is possible to increase productivity endlessly.
Factory of the map: de-bordering and over-bordering
ConvertUkrKiev_i_Kievskaja.MB
The file with this name is stored in the folder mapsfactory
. This is a script that modifies geographical
data of 2012 to new realities and hierarchies.
It is a mechanism of de-bordering and over-bordering as needed. When a border is required -- it is set; when it is not—it is removed. The ability to set or remove the border is a goal. Creating this operational space—not just open, but manageable and dynamic. Moreover, this dynamic is automated.
Print (Timer()-time_) + "сек. обсчитывались города"
Print (Timer()-time_) + "сек. обсчитывались улицы"
Print (Timer()-time_) + "сек. обсчитывались адреса"
Print (Timer()-time_) + "сек. обсчитывались гидр. объекты"
Print (Timer()-time_) + "сек. обсчитывались зел. насаждения"
Print (Timer()-time_) + "сек. обсчитывались кладбища"
A programmer had a task to find out how long the data was generated:
- for cities
- for green spaces and swamps
- for cemeteries
- for airports, roads, and bridges
The data relates to the territories where the service is working or where potentially it could be functioning.
Call ExpandAlpha("search_towns")
Call SetCentrAlpha("towns", "Киев",30.5223,50.451119)
Call SetCentrAlpha("towns", "Борисполь",30.952861,50.348377)
Call SetCentrAlpha("towns", "Боярка",30.298087,50.315977)
Call SetCentrAlpha("towns", "Бровары",30.788252,50.508578)
Call SetCentrAlpha("towns", "Буча",30.21959,50.549309)
Call SetCentrAlpha("towns", "Вишневое",30.368648,50.383927)
Call SetCentrAlpha("towns", "Вышгород",30.485014,50.582758)
Call SetCentrAlpha("towns", "Ирпень",30.244294,50.519989)
Just above in the file, there are cities that are additionally marked. Their territory is joined to Kyiv, building new hierarchical relations. Part of the listed cities are located in Ukrainian territories that were temporarily occupied by russia in 2022.
We fix disputed cities here
ad_match.cpp
The file is located in the folder together with others who are responsible for rendering maps.
There is a function in the file "fixDisputedCities". A programmer wrote this function guided by the idea that he can "fix" in software what he calls "disputed cities" - cities, whose diplomatic status is being contested diplomatically or militarily.
Here's what the programmer writes:
Fairytale about love
hardcoded_response.pb.txt
The file is called hardcoded_response.pb.txt
. The file contains a fairy tale about love. The file is
located in the hollywood
folder and further in the fast_data
folder. The file is related to
the electronic assistant. These assistants are commonly used in the home for tasks such as checking the weather
forecast, playing music, and sending messages.
The file whose text you see on the screen contains hardcoded answers to frequent questions for the electronic assistant.
In this case, we see that the electronic assistant receives a request to tell a fairy tale about love. The electronic assistant is called here "Alisa".
The text of fairy tale is about love between a guard eagle and an excavator bucket. During a business trip to build an oil rig, the bucket meets the eagle.
Disputed territories
borders.js
"Disputed territories" are tricky moments for the homogenous operability of services that extract money from geographies and human bodies. This operability belongs to the company that owns the code
File "borders.js" is stored inside of "maps" folder. It was written out of commercial necessity. It provides instructions for programmers on encoding different versions or modes of operability, including functionality across various geographies.
On the one hand, forcing as many people as possible to become service users promises increased profits. On the other hand, borders--divide people and establish law modes--block operability.
* The quality level affects how accurately curves are represented, as well as the volume of the data file.
* @param {String} [options.disputedBorders] Two-letter code of the country to use as the official reference for determining the administrative subordination
* of disputed territories. Accepted values: 'RU', 'UA', 'UN'. By default, it coincides with the country code that is specified when loading the API.
* Unsupported country codes are reset to RU. For the region '001' (borders of countries),
* the code 'UN' is supported — world borders according to the United Nations.
Inside the code, there are three perspectives on what the programmer referred to as "disputed territory"—from the viewpoints of Ukraine, the UN, and russia. All three perspectives are programmed and ready to be used.
ymaps.borders.load('RU', {
For convenience, the programmer wrote an example where he proposes to upload borders from the point of view of russia:
Early for few seconds
courier-manager.ts
The file is located in the maps folder, within the b2bgeo
folder. The programmers who wrote this code
are working on the development of a system for managing people's bodies on-site. This system is rented out to other
companies.
time_earlierByATime: 'раньше на {time}',
time_fewSeconds: 'несколько секунд',
time_h: 'ч',
time_late: 'Опоздание',
time_latenessForAFewSeconds: 'опоздание на несколько секунд',
time_latenessForATime: 'опоздание на {time}',
time_laterForAFewSeconds: 'позже на несколько секунд',
time_laterForATime: 'позже на {time}',
time_laterLessThanAMinute: 'с опозданием меньше минуты',
time_m: 'мин',
time_onTime: 'вовремя',
A programmer realizes the task of organizing the working regime with precise accuracy of one second.
Penalties
total-metrics/ru.ts
The file pertains to geographical algorithms that are not imposed on individual users but are leased to other corporations.
popupColDefineition_overtimeDurationS: 'Суммарное нарушение длины смены',
popupColDefineition_overtimeShiftsCount: 'Число нарушений длины смены',
popupColDefineition_penaltyDrop: 'Штраф за недоставку',
popupColDefineition_penaltyEarlyFixed: 'Штраф за приезд раньше',
popupColDefineition_penaltyEarlyMinute: 'Минута приезда раньше',
popupColDefineition_penaltyLateFixed: 'Штраф за опоздание',
popupColDefineition_penaltyLateMinute: 'Минута опоздания',
popupColDefineition_penaltyOutOfTimeFixed: 'Штраф за нарушение окна',
popupColDefineition_penaltyOutOfTimeMinute: 'Минута нарушения окна',
In this case, you can rent a system of "penalties." The Yandex employees have developed a universal driver punishment system that can be rented. A leased punishment algorithm can be applied -- imposition of discipline of "just in time" logistics.
In the file displayed on the screen, you can see popup messages that logistics workers receive on their mobile phones. These popup messages intrude on the worker's personal space, turning their emotions into tools for logistics operations. Through the use of a penalty system, the conditioning of workers' bodies is enforced.
FREE_COUNTRY_BORDER_GROUPS and LITE_COUNTRY_BORDER_GROUPS
country_config.cpp
The file is located in the turn_penalties
folder, which has to do with algorithms of route planning
within the map service.
A programmer was tasked with building an algorithm for creating routes that cross country borders. At the same time,
according to the company where the programmer works, some boundaries are nominal, some are less strict than
others.
On the screen, you can see the part of the code that specifies that the borders are absent or that they are
not strict. The programmer was faced with the task of coming up with names for these two situations. That's how the
following groups came to be:FREE_COUNTRY_BORDER_GROUPS
and LITE_COUNTRY_BORDER_GROUPS
... FREE_COUNTRY_BORDER_GROUPS {
// Members of Schengen Area
...
// Not members of Schengen Area having open borders with it
...
// Israel and Palestine. See https://st.yandex-team.ru/MAPSNAVI-5024.
{
"IL", // Israel
"PS", // Palestine
},
// Add new group here
const std::vector[std::vector[std::string]] -> LITE_COUNTRY_BORDER_GROUPS {
{
"RU", // Russia
"BY", // Belarus
"KZ", // Kazhahstan
}
},
}
For the needs of the map service, it was necessary to programmatically describe the situation on the border between
Palestine and Israel. The programmer, reflecting the Yandex's policy, included them in the list of
FREE_COUNTRY_BORDER_GROUPS
At the end of the list, the programmer leaves the comment Add new group here
, leaving room for corporate
maneuvering.
Minimum wage may be denied
eats-logistics-performer-payouts.json
The file relates to logistics of food delivery via Yandex taxi.
It contains the description of payments and fines. Drivers who try to make a living by participating in platform economies but fail to comply with the rules imposed by the company are punished.
This file is part of a test system. Algorithms that are not applied to real people but are instead used to test a desired reality dictated by the algorithms themselves.
"_id": "missed_shift",
...
"value": "Слот пропущен."
...
"_id": "not_enough_orders",
...
"value": "Доставлено слишком мало заказов (%(orders_count)s)."
The company regulates the intensity of human activity. On the screen is the reason for a penalty: lack of inclusion in economic activity.
"_id": "shift_early",
...
"value": "Ранний уход со слота на %(early_end_min)s минут(ы)."
...
"_id": "shift_late",
...
"value": "Опоздание на слот на %(late_start_min)s минут(ы)."
...
"_id": "shift_missed_time",
...
"value": "Пропущено %(missed_time)s минут(ы) – упущенная сумма %(single_fine_amount)s₽"
The activity is controlled with a high level of precision, down to the minute.
"_id": "hift_fraud",
...
"value": "Длительное нахождение вне радиуса назначения на заказы или изменение местоположения с помощью стороннего приложения."
...
"_id": "shift_offline_time",
...
"value": "Слишком много времени вне сети %(offline_time)s минут(ы)."
A phone with the application installed sets working regime. Avoidance of being online is qualified as violation of forced rules and is punished by a fine.
"_id": "guarantee_conditions_not_met",
...
"value": "Условие для получения Минималки не выполнено. Причины:"
The minimum wage may be denied. In this case, a corresponding message will be sent.
"_id": "order_late_arrival_to_rest_vol",
...
"value": "%(order_nr)s: опоздание в ресторан на %(single_fine_volume)s минут(ы), упущенная сумма – %(single_fine_amount)s₽"
...
"_id": "order_late_arrival_to_client",
...
"value": "%(order_nr)s: опоздание к клиенту на %(single_fine_volume)s минут(ы), упущенная сумма – %(single_fine_amount)s₽"
The principles of delivery economics are simple: hot, fresh, fast. Every minute counts. A driver's late arrival becomes a source of profit for the corporation.
Two variants of russia
geosrc_creator.h
The file is saved in the folder geocoder
.
private:
/*
If Russia (country) from Russia's point of view (001) contains Crimea
and from Ukraine's point of view (UA) doesn't contain Crimea, we build 2 variants of Russia.
It means, that countryToRecognitionSubjects contains ```Russia -> [001, UA]```
*/
A programmer who received a task to write this code is in difficult situation. He is not sure of what he wrote. He
arrives at a conclusion that if he continues to write the code in this way, because of annexed Crimea he would need to
create "two variants of russia".
The programmer leaves a comment—a message to their colleagues or to themselves in
the future.
Comment in the code as an excess, a task to solve, hidden at the infrastructural level. It represents the default version, or it allows to see what happened before it was stabilized or normalized.
The task the programmer faced was to transform a political problem into a technical one, and vice versa.
Materials used:
Materials for the School of Algorithmic Solidarity by eeefff
Screens of web page "Found data" by eeefff
Screens of a counter search engine by eeefff
Distorted open street map data by eeefff
Conditions of war
"Алиса миди в наличии во всех цветах в Луганске!" by "Купить технику Apple в Луганске ЛНР"
"Разбор Яндекс станции лайт . Yandex станция lite" by BRATTONGA
"What are Conditions? Coding for Kids" by Kodable
"Conditions. Lesson 6. Camp Coding Camp" by Scratch Garden
"I Made $246,397,197,269 by Deleting the Internet - Startup Company gameplay" by Let's Game It Out
"i filled a warehouse full of seniac workers - roblox coder simulator #6" by Seniac
Factory of the map: de-bordering and over-bordering
"Trains and Not yet understanding demand | Mashinky | ep2 " by bballjo
"Day 606 - Teaching Kids Programming - Algorithms to Count Houses in a Circular Street" by Doctor Lai
"Эволюция ︲цифровых деревьев︲. Версия2." by foo52ru ТехноШаман
"Пример оцифровки (инвентаризации) кладбища в программе ZuluGIS" by ZuluGIS User
"Non-Euclidean Worlds Engine" by CodeParade
Fairytale about love
"Yandex AI" by Yandex
"VR-визуализация для ЗБО" by Lcontent
"Суровые нефтяники - экскаватором из грязи" by Нефтяники.РФ
"Музыкальная нефтяная вышка" by anna magg
"Нефтяная Вышка ⬜ Кышик ⬜⬜ ХМАО ⬜⬜⬜ Январь 2018" by Александр Евлоев
"Как добывают нефть. Инфографика. Роснефть. How is oil produced?" by DVERGfx Studio
"Гимн нефтянников" by Александр 4233
"Центр виртуальной реальности" by Lcontent
"Визуализация комбинированной математической модели наклонно-направленного бурения " by Lcontent
"Горит нефтяная вышка в промысле Ямала" by Маңғыстау видео
"Макет «Нефтяная вышка с нефтепроводом»" by Компания Макет-РФ
A few seconds early
Photos of areas made for rest by Yandex company in Russia
"HOW TO DEAL WITH UVs IN MAYA (UNWRAPPING TIPS AND TRICKS IN HINDI)" by The Greydient
Penalties
"Доставка еды за 15 минут – через приложение Яндекс.Такси " by Yandex
"I Made $246,397,197,269 by Deleting the Internet - Startup Company gameplay" by Let's Game It Out
"Yandex.maps (yandex services)" by Igor Sandimirov
"Speed screencast of making button animation" by Igor Sandimirov
Minimum wage can be denied
"Taxi Life: A City Driving Simulator - Rest required to regen missions" by GraphiteGB
"Package Delivery 3D Gameplay Walkthrough#androidgames#ios#level ##viralshorts" by TapNen Gameplay