recursal/Fanatic-Fandom huggingface dataset:
Phase 1 Plan

## Micro Story 1

**Micro Story Title:** Dam Square

**Platform:** Spotify & Apple Music

**Logline:** A secret agent from area 51 is sent out on an undercover mission to Amsterdam to tell a young girl who her father is, and that she is a chosen one that can help change what has happened to the world.

**About:** This part of Phase 1 will be released on Spotify & Apple Music through a podcast, a chapter weekly through a 6 week period. In a truthful society, Amsterdam has everything. Yet, secrets lie among a mother and daughter when she doesn't know who her real father is. Young Julia begins to notice someone who is following her and her mom around Amsterdam. From Field trips to a day out at Dam Square. One day Daniel makes his presence completely known and visits Julia and Emma at home. He tells her that her dad wanted Julia to have this when she got of a certain age. Something that he had stumbled upon when he first started at area 51. the item was in a box so not even Daniel knew what it was. it was a necklace that appeared normal, but at a certain point is allowed Julia to unlock a certain power that could change her life forever, and the lives of everyone fighting against the titans and gods.This will be part of our no budget release, to keep or fans engaged, to generate pre awareness for our 2nd and 3rd phase.

## **Micro Story 2**

**Micro Story Title:** Trapped with the devil

**Platform:** Webtoons Mobile App

**Logline:**  Humankind had abandoned the Hawaiian archipelago after they decided to join the new United Nations Organization, now called Prima;  they've also moved inside a war kind giant robot and joined the war... in their own way. Meanwhile, ancient creatures had started to look for a new place life and started to recreate their old civilizations; but what would happen when a drakaina and a merman, two natural enemies, fell together into a trap? Would they work it out or would they end each other?

**About:** Two natural enemies, fire and water, join forces to get out of one human's trap, during this adventure they become friends.
IZ*ONE

**IZ\*ONE** (아이즈원, アイズワン) es un grupo de chicas Coreano-Japones de música formado por CJ E&M Entertainment a través del programa de supervivencia Produce 48, emitido por Mnet en Octubre de 2018.

El grupo esta compuesto por las 12 participante elegidas a través de votaciones: Jang Won Young, Miyawaki Sakura, Jo Yu Ri, Choi Ye Na, An Yu Jin, Yabuki Nako, Kwon Eun Bi, Kang Hye Won, Honda Hitomi, Kim Chae Won, Kim Min Ju y Lee Chae Yeon.

## Significado del Nombre

El nombre combina la palabra *"IZ"* (La cual se pronuncia igual que "Eyes") que simboliza el numero *"12"* y *"ONE"* que significa *"1"* refiriéndose al hecho de que los doce integrantes juntas serán uno como grupo. La estrella (**\***) entre *"IZ"* y *"ONE"* simboliza los signos astrológicos del círculo zodiacal.

## IZ\*ONE

* IZONE es un grupo coreano-japonés
* el grupo se creo por el programa de supervivencia PRODUCE 48 donde las 12 ganadoras del programa formarían un grupo (IZ\*ONE)
* El significado de el nombre IZ\*ONE: las palabras "IZ" que se refiere a uno mismo y además simboliza el numero "12" y "ONE" que significa "1" haciendo referencia a que las doce integrantes juntas serán una en el grupo. La estrella (\*) entre "IZ" y "ONE" simboliza los signos astrológicos del círculo zodiacal.
* Son 12 chicas las cuales 9 son coreanas y 3 japonesas
* el nombre del fan club es WIZ\*ONE: Wiz es la abreviación de Wizard (mago) y significa que sus fans estarán con IZ\*ONE ayudándolas a crear su futuro mágico juntos
* Su lema es Eyes On Me: que en español vendría siendo Ojos en mi
* IZONE es de la agencia de OFF THE RECORD

## Debut

ELLAS DEBUTARON CON EL MINI ALBUM COLOR\*IZ EL 29 DE OCTUBRE Y LA CANCION PROMOCIONAL FUE LA VIE EN ROSE

Y DEBUTARON EN TV EL 1 DE NOVIEMBRE EN M COUNTDOWN

## Integrantes

* Por Edad
* Por Rango

## Discografía

### **Corea**

#### Mini Álbumes

* COLOR\*IZ (2018)
* HEART\*IZ (2019)
* Oneiric Diary (2020)

### **Japón**

#### Álbumes Singles

* Suki To Iwasetai (2019)
* Buenos Aires (2019)
* Vampire (2019)

### **Otros**

#### Colaboraciones

* Rise (2019)
* Hitsuzensei (2019)

## Links

* Twitter Oficial
* Twitter del Staff de IZ\*ONE
* Facebook Oficial
* Instagram Oficial
* Canal de YouTube
* Canal de Vlive
* Fancafe Oficial
* Cuenta Oficial de Naver
* Tik Tok
Introduction to the name Variable

```
if __name__ == '__main__':
    main()

```

While reading or writing Python code you have more than likely come across the \_\_name\_\_ variable before. In this post we are going to be looking in to what it actually does and how you can use it to create modules in Python.

## What is it used for?

The  \_\_name\_\_ variable is a special Python variable that gets its value depending on how we execute the containing script.

Someimes when we write a Python script containing functions we may want to use that in other scripts as well, in Python we can import said script as a module in another script.

And so thanks to this special variable, we can decide whether we want to run the script or if we want to import the functions defined in the script.

## What values can it contain?

When we run our script, the \_\_name\_\_ variable equals \_\_main\_\_. When you import the script, it will contain the name of the script.

Let's look into these two scenarios in more detail:

### Run the script

Suppose we had a script nameScript.py, and it looked like the following:

```
def myFunction():
    print('The value of __name__ is ' + __name__)

def main():
    myFunction()

if __name__ == '__main__':
    main()

```

If you run this script the process below is followed:

Before any other code is executed, the \_\_name\_\_ variable is set to \_\_main\_\_. After that, the  main and  myFunction def statements are run. Because the condition evaluates to true, the main function is called. This in turn calls myFunction. Which then prints out the value of  \_\_main\_\_.

### Import the script in another script

If we want to re-use myFunction in another script, for example in importScript.py, we can import nameScript.py as a module.
The code in importScript.py would look as follows:

```
import nameScript as ns

ns.myFunction()

```

We then would have two scopes: one of importScript, and the second scope of  nameScript. In the illustration you can see how it differs from the above case:

In importScript.py the  \_\_name\_\_ variable is set to \_\_main\_\_. By importing nameScript, Python starts looking for a file by adding .py to the module name. It then runs the code contained in the import file.

But this time is is set to nameScript. Again the def statements for main and myFunction are run. But now the condition evaluates to false and main is not called.

In importScript.py we call myFunction which outputs nameScript. nameScript is known to myFunction when that function was defined.

If you would print \_\_name\_\_ in importScript this would output  \_\_main\_\_. This is because Python uses the value known in the scope of importScript.

## Conclusion

In conclusion, we wen't through how you can use the \_\_name\_\_ variable to write modules or run modules on their own. All done by making use of how the values of these variables change depending on where they occur.

## References

What's in a (Python's) \_\_name\_\_? by Bert Carremans
Act II

## 2028-2038

The grand battle between Titans,Gods, and man made robots takes effect. Patty Starks discovers the worlds secrets in a giant pyramid and its up to her to warn society of this grand battle. She races back to Area 51 where she attempts to release the gods from there doom. There are massive explosions as she races to every radio station and tv station to spread the word. Meanwhile in North Korea rocket scientist are racing to build the ultimate fighting machines, But only one person holds the power.
Core Narrative 4

**TITLE: The True world**

**CORRESPONDING MACRO-STORY BEAT: The grand finale**

**LOGLINE: A team of robots have been summoned By a girl named patty Starks in a attempt to save the world from a grand battle between gods and titans**

### **SHORT STORY SYNOPSIS: This story takes place in North Korea where a team of scientist hacked the U.S. Area 51 and found out the worlds secrets. the main character patty Starks teams up with these scientist with the information they need to build these awesome robots.**

**Act 1: Being a great enemy of the US North Korea agreed to team up with a great explorer (patty Starks in a attempt to stop the us government from destroying the world.**

**Act 2: chi chi the great scientist has the technology to create these super bots that are way ahead of its time. They all have unique names and abilities that somehow help destroy the titans. and hopefully save the world**

**Act 3: all the bots fight off the titans in a epic battle for humanity. But only one human has the power to control these bots because She has the stone that controls them all**

**GENRE: Action/Thriller (short film)**

**PROTAGONIST: Patty starks**

**ANTAGONIST: US president who is looking to take over the world**

**MAIN SUPPORTING CHARACTERS W/DESCRIPTIONS:**

1. Patty starks ( great explorer who discovers a precious stone with amazing powers)
2. chi chi (scientist who has the blue prints to create amazing bots)
3. Hawk-bot ( leader of the fighter bots who takes form of a hawk/robot secret power is radar detection )
4. Monk-bot ( Money shaped robot who has amazing strength and is able to jump to amazing heights )
5. Shark-bot ( Special ability is being able to sense fear and is an expert hunter)
6. US president who is nothing but pure evil.

**PRIMARY LOCATIONS WITH DESCRIPTIONS):**

1. Area 51
2. Los Angeles
3. Egypt
4. North Korea

**ADDITIVE COMPREHENSION: Shows info from narrative 2 on how patty Starks discovers this unique stone**

**TARGET MARKET: Females 18-30 yrs old**

**THOROUGH DESCRIPTION OF THEIR MEDIA HABITS: most females these ages have a significant other they enjoy films with and makes up most of the movie market**

**MEDIUM: Short Film**

**WHY IT WORKS IN THIS MEDIUM: It captures our vast audiance and this film will be up for mass promotion**

**PLATFORM: local and domestic theaters**

**WHY IT WORKS IN THIS PLATFORM: This is what our target audience prefers.**
Rise

**Rise** es una canción de Jonas Blue con la participación de IZ\*ONE. Fue publicado el 7 de Marzo de 2020, como una colaboración sorpresa entre los dos artistas.

## Descripción de la Canción

El nuevo single de Jonas Blue "Rise" (Feat. IZ\*ONE) es una nueva sensación mundial en la música electrónica.

Jonas Blue, un DJ y productor nacido en Gran Bretaña, es uno de los artistas en ascenso del genero Tropical House. Ha ganado popularidad liderando una sensación mundial al encabezar la lista de éxitos australianos con su single "Fast Car", lanzado en 2015, y al terminar segundo en la lista británica con su single "Perfect Strangers" en 2016.

El último single de Jonas Blue "Rise", captó los oídos del público de todo el mundo con un sonido adictivo gracias a su anterior lanzamiento "By Your Side" y "Mama", es una pieza impresionante con un acompañamiento de piano y un sonido de sintetizador que fluye con las voces del grupo de chicas, IZ\*ONE.

Además, el emprendedor sonido de pop electrónico de Jonas Blue, junto con los repetidos coros, proporciona una atmósfera genial y refrescante.
COLOR*IZ

**COLOR\*IZ** es el debut de IZ\*ONE y su primer Mini Álbum, fue publicado el 29 de Octubre de 2018, con La Vie en Rose como canción principal.

## Descripción del Álbum

El grupo de chicas Rookie "IZ\*ONE", que ganó una popularidad explosiva antes de su debut y que ahora es el centro de los temas de actualidad, confirmó su debut el 29 de octubre con su primer Mini Álbum "**COLOR\*IZ**".

"IZ\*ONE" está formado por los 12 mejores integrantes votados por los productores nacionales a través del programa de supervivencia "PRODUCE48" de la siguiente manera: Jang Won Young, Miyawaki Sakura, Jo Yu Ri, Choi Ye Na, An Yu Jin, Yabuki Nako, Kwon Eun Bi, Kang Hye Won, Honda Hitomi, Kim Chae Won, Kim Min Ju, Lee Chae Yeon.

"IZ\*ONE (아이즈원)" presenta su primer mini álbum COLOR\*IZ (컬러라이즈), que se pronuncia igual que color-aiz el cual significa "poner color".

Como se reveló en el trailer del debut de IZ\*ONE, cada miembro tiene un color representativo. Entre los diferentes colores, el álbum debut COLOR\*IZ (컬러라이즈) utiliza "ROJO" como elemento que encarna mejor la pasión de "IZ\*ONE (아이즈원)". "ROSA" es su concepto, ya que representa a "ROJO" en su forma más bella y apasionada. Se espera poder presentar el precioso sueño de las chicas y su plena pasión para debutar.

La canción principal del mini álbum debut, "La Vie en Rose" revela el primer encanto de "IZ\*ON E(아이즈원)" con una pegajosa parte del estribillo. La canción significa hacer que tu, yo y la vida de todos sea de color de rosa, como se tradujo del título con la pasión de IZ\*ONE.

Además, este álbum consta de temas como "We Together" que puede presentar la identidad de lo mejor de "IZ\*ONE", 'O' My!' que ingeniosamente expresa una emoción de primer amor en el género de Teen Dance y y "Memoery" una canción que cuenta historias y que entrega cálidas emociones además de un gran arreglo. 앞으로 잘 부탁해' y '반해버리잖아? (好きになっちゃうだろう？)' que fueron canción de evaluación de Mnet para "PRODUCE48" el pasado agosto, "꿈을 꾸는 동안" una canción de grupo interpretada en el episodio final y "PICK ME" en versión "IZ\*ONE", la canción principal de "PRODUCE48". Quien los haya visto desde "PRODUCE48" puede sentir un nuevo encanto de "IZ\*ONE". Comenzando con el primer mini álbum, esperemos que los 12 coloridos encantos que "IZ\*ONE" mostrará al mundo entero.

## Lista de Canciones

1. Colors
2. O' My!
3. La Vie en Rose
4. Memory
5. We Together (Versión IZ\*ONE)
6. Suki ni Nacchau Darō? (Versión IZ\*ONE)
7. Yume wo Miteiru Aida (Versión IZ\*ONE)
8. Nekkoya (Versión IZ\*ONE)
Salable Description

## Storyworld Logline

Earth continued to develop for 20 years after the year of 2018... This prediction was made clear by The Scientists on New Year's Day 2019. However, Greek Mythologies exist on earth... So, little did The Scientists know their prediction would be RIGOROUSLY put to the test during the war. In an ever-evolving landscape; driven by the motors (no pun intended) After Failing to keep them stored forever, Area 51 has unleashed (see Core Narrative 1) the mythologies unto earth and it's human population. There is a 3-way world war existent on Earth. and it is all due to a lack of truth (soapbox) from previous High-Level operated government institutions such as Area 51.

## Cities

1. Montreal, Canada
2. Tokyo, Japan
3. Stockholm, Sweden
4. New York, NY
5. Hawaii, USA
6. Amsterdam, Netherlands
7. Cairo, Egypt
8. Pyongyang, North Korea
9. Las Vegas, NV

## Explore

1. Unfamiliarity
2. Definable Location
3. Broad Boundaries
4. High Concept
5. Character Groups / Alignments
6. Social Segments / Status Ladders
7. Special Sauce
8. Room for History
9. Mythopoeia
10. Misc
Character Groups / Alignments

* Themis (T) (The Lady of Good counsel)
* Dr. Patel (H)
* Rhea (Mother of Gods) (T)
* Tyrese Franklin (H)
* Typhon (Son of Gaia, Offspring) (GG)
* Hyperion (T)
* Gigantes (T)
 Ascendent* Thanatos (G.God of Death)
* Tethys (T)
* Crius (T)
* Mnemosyne (T) (Goddess of Memory)

Greek Gods - (GG)

Titans - (T)

Humans (H)
Full Description

## Topic

Prima has a problem with truth in their world:

> "Truth is something that squares with reality... unconstrained by fact or logic."
>
>

> - (www.Vocabulary.com)
>
>

You’ll find Area 51 is directly affected by this matter (see Prima's Storyworld).

## Opinion

It's better to know the truth.

Would you rather believe Area 51’s lies about aliens? Or do you wish you knew what really existed so that you could prepare for the day things go terribly wrong?

## Advice

Therefore, we decided it was best for everyone to learn the truth. Additionally, check out our personal example below. We felt we should do the world some justice by saving one life at a time: read ‘It’s Personal...” to start positively impacting your life today.

## It’s Personal...

One of our group members declined a full-ride scholarship to business school because his girlfriend told him that she was pregnant with their child (it was a lie); because he was given false information to take action upon, he made a grave mistake In his logic. He declined the scholarship (which they were not able to fulfill after his declination).

Later, his girlfriend told him the truth: that it was not his child, and she had been lying all along to keep him with her.

As a result, we (the creators of Prima) decided to make this the focal point for which decisions are based, lessons are learned, and experiences are shared.
Anguish of the Dead

**Anguish of the Dead** is the fifth episode of *Violent Hearts: A Western Epic* season three, the fourth part of the Yancuican Chapter, and the thirty-sixth episode overall.

## Characters

### Protagonists

* **Adam Andrews**
* **Gwendolyn S. Blackwood**
* **Amaru Dorian**
* **Kinta Gardner**
* **Gabriel “Haganenome” Gray**
* **Frankie Mitchels**
* **Leonora Ryder**

### Antagonist

* **Omiticoatl the Ancient** (First and only appearance)

### Major Characters

* **Jabril al-Turay**
* **The Gaijin**
* **Ashel**

### Minor Characters

* **Lazarro de Ponte** (First appearance, vision)

## Insert Song

* "Bridge Over Troubled Water" by Gregorian
Social Segments / Status Ladders

Upper class are the people who know all of the truth who don't really fight against the gods but tell the middle class to fight on their behalf. they also don't tell the lower social classes under them why they are fighting and like to hold back on the truth.

Middle class are made up of the fighters who operate the weapons. This class usually consists of armed forces veterans who are experienced in combat situations.

Lower class are made up of the humans who manufacture the weapons and are in charge of all the food supply, from cultivating and farming. consistently figuring out ways on who the rest of the city will eat.
Third class droid

A **third class (class 3) droid** is a droid programmed for interaction with organic beings in services such as child care, diplomacy, interpreting, prostitution, and teaching. Protocol droids and service droids were third class droids.

Some droids can be equipped with protocol chips to give them the cognitive functionality to engage socially.
Dr. Sarah Patel

Dr. Sarah Patel is one of the lead scientists in humanity's war efforts. Based in Montreal, she was the first person to study the box as a means for humanity's defense after it was acquired from Area 51. It was her original idea to seek refuge in the box, but Prima took measures to stop her research, and sully her credibility. However, she may be one of humanity's last hopes for survival.
The Star Wars Erotic Saga Wiki

## Welcome to the Wiki

**Star Wars: The Erotic Saga** is an erotic Star Wars fanfic series that sets in time between 32 BBY and 34 ABY and aims not to break the canon. It was written by Alex Skull Uterna.

You are allowed to write articles as long they about the series and doesn't override the already existing articles written on this wiki.

Click the add new page button  at the top of any page to get started!
Cornelius Evazan

Doctor **Cornelius Evazan** was a human male who was a promising cosmetic surgeon until he became gripped by madness and began practicing "creative surgery" on his patients, leaving his victims horrifically disfigured. While working as the personal doctor of Dryden Vos, Evazan drugged a human female and forcibly subjected her to surgery that transformed her organic body into a machine, turning her into a cyborg sex toy for Vos's twisted perversions.
A Hot on Hoth

“You like this, men? You like me being the naughty slut you’ve been fantasizing about all this time?”
-Leia Organa to the crewmen

Leia loved sex just as much as the men, but she so usually had to portray a dedicated leader of the Rebellion. So when the opportunity presented itself to let loose, it excited her more than anything and offered a wonderful way to relieve her stress after a long day.
BD-3000 luxury droid

"Right away, Governor. And may I say, you're looking particularly handsome today."

―A sample of a BD-3000's "flattery programming"

The **BD-3000 luxury droid**, nicknamed **Betty Droid**, is a thrid class luxury attendant droid modeled on an idealized female humanoid body shape. Some of them are fitted with fully-articulated head-tails, capitalizing on the popularity of Twi'lek females.

It is programmed with extensive personality matrices, allowing for a variety of droid personality profiles. Sophisticated vocabulator systems allow the model to project a large number of sounds and voices, including presets described as "perky" and "sultry". Onboard expansion slots allow for user customization.

## Popularity

The droid's main selling point is the remarkable aesthetics—its provocative gyro-stabilized hip swing and very well defined torso, and soft artificial vagina that imitates the female sex organ.

Because of their intended market, BD-3000 models are priced expensively, at roughly 25,000 credits. Despite this price, sales are common, especially among the wealthy social "elite" of Coruscant who use the shiny droids as status symbols.

## History

Many Senators such as Neimoidian Lott Dod used the personal luxury droids as sex partners.

During the Clone Wars, a BD-3000 known as Bettie-Bot Go-go was popular erotic dancer among the Republic's clone troopers, and she sometimes gave lap dances to them.

## Behind the scenes

### In the official films

Bail Organa was originally to have a sexy female-shaped attendant droid working in his office. Though the scenes of Bail's offices were ultimately cut from the film, the droid still made an appearance in the Galaxies Opera House portrayed for motion capture by actor Christian Simpson.

Lucas's directives described the droid as the automated equivalent of Bettie Page, a famous pin-up model, and the droid design quickly earned the nickname "Bettybot".
Tigran Jamiro

**Tigran Jamiro** was a Human male from Onderon who served at the Rebel Alliance military headquarters during the Galactic Civil War.

## Biography

Initially serving on Dantooine, he moved with the high command to Yavin 4. He was fueling a T-65B X-wing starfighter when he saw Princess Leia Organa heading to the war room. Until then, he had only seen holos of her, and he thought that she was prettier in person. He wanted to bend her over a troop carrier and pound her ass like no man ever has.
Njar-Njar

**Njar-njaren** är ett litet fyrfotat, betande däggdjur från Vimo. Dess namn är baserat på dess läte. Njar-njaren tämjdes för tiotusentals år sedan av vimmländarna och har varit livsviktig för dem sedan dess. Dess kött, märg och mjölk utgör ungefär 80% av en vimmländares diet. Deras päls, skinn, senor och ben används för att tillverka allt en vandrande familj kan behöva.

På Vimo mäts en familjs rikedom i storleken på deras njar-njarhjord. Vid konflikter med andra grupper är njar-njarstöld en av de vanliga sätten att gå till angrepp. För att förhindra förvirring målas eller tatueras ofta njar-njarer med familjens färger och symboler.
Tamizander Rey

**Tamizander Rey** was a Human male commander of the Alliance to Restore the Republic during the Galactic Civil War.

## Biography

After joining the Rebellion, he served at the secret Echo Base on the ice planet Hoth. He secretly lusted for Princess Leia Organa as much as any man in that base, but as the facility's senior deck officer he always showed the Rebel leader respect even when not in her presence.
Act III

## Box of Pandora?

In this final act of our macro story, we are back in area 51. The human race is realizing how they can live their lives on a daily basis, as well as putting up with the fight agains the titans and gods. Humans are able to to defeat the gods and titans at their own war due to technological advances. The titans and the Greek Gods have come to an agreement to help rebuild the planet by being able to put all the evil gods and titans back in pandoras box. The "Good" ones that were left are now here to coexist with the human race and are able to take on human forms, and they do not hate and are not about the war.
The Taking Light

**The Taking Light** is the eleventh episode of *Violent Hearts: A Western Epic* season three, the fifth and final part of the Northern Journey Chapter, and the forty-second episode overall.

## Characters

### Protagonists

* **Adam Andrews**
* **Gwendolyn S. Blackwood**
* **Amaru Dorian**
* **Kinta Gardner**
* **Gabriel “Haganenome” Gray**
* **Frankie Mitchels**
* **Leonora Ryder**

### Antagonists

* **The Visitors** (First and only appearance)
* **The Senator** (First appearance)
* **Salem** (First appearance)

### Major Characters

* **Barba Roja**
* **Lorenz Hopper**
* **Wilson Ford**
* **Wade Ford**
* **Winslow Ford**
* **The Gaijin**
* **Koda**
* **Yobirin** (Spirit; first appearance)

### Minor Characters

* **Vance Morse** (First and only appearance)

## Trivia

* This episode marks the first year anniversary of *Violent Hearts: A Western Epic*, as it was aired on May 8, 2020. The very first episode, "Los Lazos", aired on May 10, 2019.
* The episode's title, "The Taking Light", is a reference to the ominous green light accompanying the Visitors during their abductions.
* Leonora Ryder officially started her spiritual journey by becoming acquainted with a spirit named Yobirin.
* Yobirin was originally meant to be a spirit residing in the miniature temple that Adam Andrews obtained in Sarun, but this idea was scrapped as the series progressed. The character was repurposed as Nora's spirit guide.
Python virtual environment

## What is it?

A virtual environment is a tool that helps to keep dependencies required by different projects separate by creating isolated python virtual environments for them. It is a very important tool for developers.

## Why use it?

Imagine for example that you are working on two different web based python projects and one of them uses Django 1.9 and the other uses Django 1.10. In such situations a virtual environment can be very useful to maintain dependencies of both projects.

## When/where use it?

By default, every project on your system will use the same directories to store and retrieve site packages (third party libraries). This is important because (say in the case of the above example) in our two projects we have two versions of Django. This is a problem for Python since it can't differentiate between versions in the "site-packages" directory. so both v1.9 and v1.10 would reside in the same directory with the same name. This is where virtual environments come in.

To solve this problem we just need to create two separate virtual environments for both projects.

A virtual environment should be used whenever you are working on a Python based project. It is generally speaking, good to have one new virtual environment for every Python based project you are working on. So the **dependencies of every project are isolated from the system and each-other**.

## How does it work?

We use a module named **virtualenv** which is a tool to create isolated Python environments. virtualenv creates a folder which contains all the necessary executables to use the package that a Python project would need.

## References

Python Virtual Environment Introduction - Geeks for Geeks
Map, Filter, and Reduce

## Map()

The map() function in Python is used to apply a function to all the elements of an iterable and returns a map object (another iterator).

### Syntax

```
map(<function to apply>, <iterable list of inputs>, ...)

```

You can pass multiple iterable arguments to the map function. The function will be applied to iterable elements passed.

### Examples

WITHOUT using map() :

```
numbers = [4, 3, 6, 9, 11]
squared = []
for number in numbers:
    squared.append(i**2)

```

WITH using map() :

```
numbers = [4, 3, 6, 9, 11]
squared = list(map(lambda x: x**2, numbers))
print(squared)

# Returns:
[16, 9, 36, 81, 121]

```

We usually use lambdas with map(), but we can also use regular functions :

```
def square(x):
    return x**2

numbers = [4, 3, 6, 9, 11]
result = map(square, numbers)
print(list(return))

# Returns:
[16, 9, 36, 81, 121]

```

## Filter()

The filter function creates a list of elements for which a function returns True. It tests each element in the iterable to be True of False.

### Syntax

```
filter(<function>, <iterable>)

```

### Examples

The following code filters out the vowels in a given string :

```
def vowels(letter):
    v = ['a', 'e', 'i', 'o', 'u']
    if letter in v:
        return True
    else:
        return False

string = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

filtered = filter(vowels, string)

for each in filtered:
    print(each)

# Returns :
e
o
o

```

Like with the map() function, it is more common to use a lambda function :

```
string = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

result = filter(lambda x: x.lower() in ['a', 'e', 'i', 'o', 'u'], string)
print(list(result))

# Returns :
['e', 'o', 'o']

```

## Reduce()

This function is used for performing a particular function on  a list and returns the result.

### Examples

Lets say we wanted to compute the product of a list of integers.
If we do this WITHOUT reduce() :

```
product = 1
numbers = [1, 2, 3, 4]
for each in numbers:
    product = product * num

# product = 24

```

If we do the same thing WITH reduce() :

```
from functools import reduce

product = reduce((lambda x, y: x * y), numbers)

# product = 24

```

Lets say we want to find the maximum number in a list of numbers :

```
maximum = reduce(lambda x, y: x if x > y else y, numbers)
print(maximum)

```

## References

Python map() function

Map, Filter and Reduce

Python map() function

filter() in python
reduce() in Python
Adding resources to your project

Say you want to add a image as a background to a label in your form, they way we would do this in Qt Designer is to set up a resource file and add the images from there for you to use wherever you like within your project. Here I will quickly show how you can set up a resource file (.qrc file) and how you add files to it to use.

## Setting up a recource file and adding resources

To do this we will need to go to our Resource Browser (if it is not showing already go into **View** -> **Resource Browser**).

From there we click the **Edit Resource** button (first from the left).

Then click the **New Resource File** button (first from left).

Enter a file name (for example *resource.qrc*) in the desired location, then hit **Save**.

From here we hit **Add Prefix** (fourth from the left) and enter a name (for example, *images*).

Then click **Add Files** (fifth from left) and add the resources you want.

## Adding image to object

For this example lets say we want to add a background image to a label. To do this we would need to go into the **Property Editor**and go to **styleSheet**.

Click on the three dots to the right and then go to **Add Resource** -> **background-image** .

From there select the resource you created and then the file that pops up on the right that you loaded in earlier, then hit **OK**.

And there you have it! Your label should now have the image as it's background. Keep in mind you can change the stylesheets of more than just labels, and stylsheets can do more than just change background images.

## Converting .qrc to .py

Now before we can get our resource working when trying to run our Python file, we need to convert our *resource.qrc* file to a .py file. Otherwise when we try to run our Python file currrently we will get a

```
ModuleNotFoundError: No module named 'resources_rc'

```

error. So to do this we need to do a similar thing as to how we convert our .ui file to a .py. Using the following command:

```
pyrcc5 resource.qrc -o resource_rc.py

```

in Anaconda. Make sure your.py version is the same name as your .qrc version, otherwise you Python app won't be able to find it on import.

## References

Creating a resource file to use it in Qt Designer - Stackoverflow

Qt Creator and main window background image - Stackoverflow

PyQt - ImportError: No module named 'resource\_rc' - Stackoverflow
Decraniated

**Decraniated** was a cyborg-turned human female produced by a fugitive surgeon Cornelius Evazan, for the crime lord Dryden Vos to satisfy his twisted perversions.

## History

While working as cosmetic surgeon, doctor Evazan drugged and forcibly subjected her to surgery that turned her into a cyborg sex toy.

Prior to 10 BBY, she served Dryder Vos aboard his yacht First Light.
Topic Backlog

## Prioritization and Categorizing

To prioritize, use these 3 questions:

1. Do I know what the topic is?
2. Will it be useful to me in the medium-to-long term?
3. Does it relate to what I am working on now?

**Step 1** - Topics you have no idea about go straight to the top of the list.

**Step 2** - Reshuffle based on whether the topic is useful to you in the medium-to-long term.

**Step 3** - Reshuffle again based on whether it relates to something you are currently working on.

With the priorotizationg taken care of we can then move on to adding to one of the three categories (**IDENTIFICATION**, **DISCOVERY**, or **PRACTICE**).

ref : How to prioritize what you learn by creating a topic backlog by Dan Draper

## Topics

### Programming

#### **General Python Knowledge**

1. Sets - **DISCOVERY**
2. Descriptors - **DISCOVERY**
3. PyQt - Signals and Slots - **PRACTICE**
4. Web Scraping in Python using BeautifulSoup - **PRACTICE**
5. Pickling and Shelving in Python - **DISCOVERY**
6. Using Python Virtual Environments - **DISCOVERY**
7. Python's Flask - **DISCOVERY**
8. Using lambda functions - **PRACTICE**
9. Regex - **PRACTICE**
10. CSV file reading and writing in Python - **PRACTICE**

#### **Specific Programming Topics**

1. Face Recognition with cv2 - **DISCOVERY**
Variables vs Objects

Here I will be covering the semantics of variables and objects, which are the main ways you store, reference, and operate on data using Python.

## Variables are Pointers

When assigning variables in a language such as C :

```
int x = 5

```

you are essentially putting the data 4 in a "memory bucket" named x. However in Python variables are thought of not as containers but as pointers.

```
x = 5

```

As seen above in Python you are essentially defining a *pointer* named x that points to some other bucket containing the value 4.
Because Python variables just point to various objects, there is no need to "declare" the variable, or even require the variable to always point to information of the same type. This is why people say that Python in *dynamically-typed*, variable names can point to objects of any type. So in Python you can do things like:

```
x = 5
x = 'Hello World!'
x = [2, 4, 8]

```

Whereas in *statically-typed* languages such as C we must declare the type :

```
int x = 5

```

The consequence of having this dynamically-typed form is we have to be careful of having two variable names pointing to the same mutable object, then changing one will change the other as well.

## Everything is an Object

Python is an object-oriented programming language, and in Python everything is an object.

```
x = 'Hello World!'
type(x)

str

```

Python has types; however, the types are linked not to the variable names but to the objects themselves. In object-oriented programming languages like Python, an object is an entity that contains data along with the associated metadata and/or functionality. In Python everything is an object, which means every entity has some metadata (called *attributes*) and associated functionality (called *methods*). These attributes and methods are accessed via the dot syntax.

For example, the 'append' method that is used to add items to lists. This is done using the dot syntax :

```
some_list = [2, 4, 6]
some_list.append(8)
print(some_list)

[2, 4, 6, 8]

```

Even simple types have attached attributes and methods. For example, numerical types have a real and imag attributes that returns the real and imaginary part of the value, if viewed as a complex number:

```
x = 4.5
print(x.real, '+', x.img, 'i')

4.5 + 0.0 i

```

Methods are like attributes, except they are functions that you can call using opening and closing parentheses. For example, floating point numbers have method called *is\_integer* that checks whether the value is an integer :

```
x = 4.5
x.is_integer()

False

x = 4.0
x.is_integer()

True

```

Even the attributes and methods of objects are themselves objects with their own type information :

```
type(x.is_integer)

builtin_function_or_method

```

## References

Basic Python Semantics: Variables and Objects
Projects

I have decided that I want to start documenting the projects I do. Commenting on the issues I come across, things I learn as I go, and any other notes I can come up with.

The majority of these projects will likely be small Python scripts, and tools I build for Autodesk Maya. I probably won't bother writing about very old projects as I won't be able to remember the details as clearly. Some of the projects I write about here may not even be finished yet.

## Python Scripts

* Article Scraper
* Magic Counter
* CLI To-Do List
* CLI Word-Craft

## Maya Tools

* Rig Control Builder
* Renamer
* Light Builder
* Rig Mirror
Rig Control Builder

**= COMPLETED =**

## About

I built this tool after hating having to do the boring repetitive task of creating controls for joints when building a rig. Having to do the parenting, un-parentling, zeroing out, rotating, over and over again by hand can get very tedious. So I built this tool to somewhat automate the process.

It allows you to select a chain of joints, select the type of joint you want to create, decide on parenting information, scale, and orientation all in one window.

Git: rigControlBuilder
PyQt - Slots and Signals

Here we will talk about and learn to program our GUI's in an event driven manner. In other words, getting our functions and methods to execute in response to the user's actions. Such as button clicks, selecting items from a collection, or a mouse click. These are class **events**.
Widgets used to build the GUI interface act as the source of events. Each widget (derived from the QObject class) is designed to emit a **signal** in response to one or more events. The signal does not perform any action on its own, Instead it is 'connected' to a **slot**. The slot can be any **callable Python function**.
In PyQt, conneciton between a signal and a slot can be achieved with this basic syntax:

```
widget.signal.connect(slot_function)

```

## Examples

Suppose if a function is to be called when a button is clicked. Here, the clicked signal is to be connected to a callable function :

```
button.clicked.connect(slot_function)

```

Another example of a signal in PyQt would be the *textChanged*signal. So for example say we have a lineEdit widget and we want to run a certain function when the text in the lineEdit is changed. We could do that in the following way :

```
some_line_edit.textChanged.connect(some_function)

```

## References

PyQt - Signals and Slots - Tutorials Point
Twi'lek

**Twi'leks** were a humanoid species whose most striking features included colorful skin, which varied in pigment from individual to individual, and a pair of tentacles that grew from the back of their heads. They could be found everywhere from Tatooine to the halls of the Galactic Senate on Coruscant, and followed every career path from a dancer to Jedi Council member.

## Behind the scenes

### In the official films

The first two Twi'leks, Bib Fortuna and Oola, appeared in Return of the Jedi, and several others have appeared in the subsequent prequel trilogy. Twi'leks have since become the go-to alien species for sexy females.
Creating a Vertex Buffer and drawing a triangle in OpenGL

## What is a Vertex Buffer?

A vertex buffer is an OpenGL feature that provides method's for uploading vertex data (position, normal vector, colour, etc) to the video device for non-immediate-mode rendering. They offer substantial performance gains over immediate-mode-rendering primarily because the data resides in the video device memory rather than the system memory, and so it can be rendered directly by the video device. These are equivalent to the vertex buffers in Direct3D.

## What is a Shader?

A Shader is a user-defined program designed to run on some stage of a graphics processor. It's purpose is to execute one of the programmable stages of the rendering pipeline.

## Creating a Vertex Buffer

```
/* Define a Vertex Buffer */
glGenBuffers(x, y);

```

x = Specifies the number of buffers to generate.

y = Specifies an array in which the generated buffer is stored (pointer).

Example of creating a buffer :

```
unsigned int buffer;
/* Define Vertex Buffer */
glGenBuffers(1, &buffer);

/* Select/bind the buffer */
glBindBuffer(GL_ARRAY_BUFFER, buffer);

/* Specify the data */
glBufferData(GL_ARRAY_BUFFER, 6 * sizeof(float), positions, GL_STATIC_DRAW);

```

Then to draw the buffer :

```
/* Render here */
glClear(GL_COLOR_BUFFER_BIT);

/* Initialize draw call for our buffer*/
glDrawArrays(GL_TRIANGLES, 0, 3);

```

## References

Vertex Buffers and Drawing a Triangle in OpenGL - TheChernoProject

Vertex buffer - Wikipedia

What are shaders in OpenGL and what do we need them for? - stackoverflow

Shader - OpenGL wiki

OpenGL API Documentation
Basic Biped IK/FK Rig

These steps are assuming you have already created your base joints.

```
cmds.xform(ro=(x, y, z))

```

2. Group the control to itself and rename it.
3. Grab control group, then select FK joint, and press 'P' to parent them.
4. Zero out translates and rotations on group. This will snap the group/control to the joint position.
Then you can un-parent them using 'Shift + P'.
5. Do the same thing for all the controls required.

6. Parent all of the control/groups under each other.
Grp -> next ctrl up -> Press 'P'

7.Parent Constraint joints to controls.
Ctrl -> Joint -> Parent Constraint.

8. Create control for Pole Vector. Group to itself, parent to elbow joint, zero out and un-parent (same as the process used for the FK controls). Move the control back a bit so it isn't sitting directly on top of the joint.

9. Set preferred angle on the elbow. Bend the elbow 90 degrees then select 'Set Preferred Angle'.

### Step 3

#### IK Rig

1. Now switching over to the IK rig we need to create the IK handle.
Go to the 'Skeleton' menu and select 'Create ik handle'.
Make sure you have it set to RP Solver in the settings.
Select the shoulder (or hip, whatever you are doing) then wrist (or ankle...)

2. Create another shape control for the "hand". Group it to itself, parent, zero out, then un-parent. All the same as done before.

3. Point Constraint  IK handle to the hand control.
Select hand control -> ik Handle -> Constraint
Now the chain should follow the hand around.

4. Select elbow control and lock & hide the X and Z rotation. So it can not twist and contort.

5. In the hand control attributes, add a new attribute and name it 'IK\_FK\_SWITCH'.
It must be a float with a min. value of 0 and a max. value of 1.
6. Select joints and controls in the following order and apply a Parent Constraint.
Shoulder\_FK\_Joint -> Shoulder Ctrl -> Shoulder\_IK\_Joint -> Shoulder\_Base\_Joint -> Parent Constraint.
Maintain Offset : Off
Only rotation
Do the same thing for all the joints.
7. Select the Pole Vector control -> IK Handle -> Assign Pole Vector Constraint.
Article Scraper

**= COMPLETED =**

## About

This script was intended to scrape some of my favourite programming sites and return the articles that spoke about the Python programming language. Displaying them neatly with a header of the article name, summary of what the article is about, and a link to the full article.

Git : Article-Scraper

## What I learnt

For this project I needed to brush up on how to use BeautifulSoup, so I went to YouTube and found Python Tutorial: Web Scraping with BeautifulSoup and Requests which conveniently taught me the basics of using the Requests  module as well as how to read and write information to .csv files using the csv  module.

This tutorial taught me enough about how to use BS4 and Requests to allow me to start with my own project. I initially also set out to use csv to read and write my information to however I quickly decieded that I wanted a prettier way of displaying the information, a better way of linking to the full articles, and an easier way of jumping into the scraped information than having to open up Excel every time the scrape was complete.

## Difficulties I Faced

I had to try and remember how to use html and css the way I wanted to. Even though the layout and styling is super basic, I still hadn't touched any web development in at least 6 months or more so I had forgotten most of what I needed to write to get the styling working even it's current basic form.

I also found it difficult at first to get the writing to a html doc from python to work as expected. To be honest this was more due to the fact that I wasn't noticing that I was still accidentally trying to write to a text file instead of a html, I had forgotten to change a certain line that was writing to the new html...

Another miner issue I ran into was finding the portions of the site that I was looking for using BS4. Even though I had watched the tutorial and read some posts about the library I still found myself making little mistakes on how to find certain portions, such as the link address for the articles. Then remembering to treat the found items as lists, for example to find the link in the headline I needed to do the following:

```

# Get the link from the header.
link = article.h2.find('a', href=True)
link = link['href']

```

Working out when I need to use the '.text' on the ends is something I still don't totally understand. For example:

```
header = article.h2.a.text

```
What is lambda?

A lambda function is a one line anonymous function that you don't plan on reusing. It can take any number of arguments, but can only have one expression.

## Syntax

```
lambda arguments : expression

```

## Examples

1. A lambda function that adds 10 to the number passed in as an argument, and print the result.

```
x = lambda a : a + 10
print(x(5))

```

2. Multiplies argument a with argument b.

```
x = lambda a, b : a * b
print(x(5, 6))

```

3. Using lambda with the map function to square a list of numbers.

```
numbers = [4, 3, 6, 9, 11]
squared = list(map(lambda x: x**2, numbers))
print(squared)

# Returns:
[16, 9, 36, 81, 121]

```
TrashPanda Wiki

## Welcome to the TrashPanda Wiki

Welcome to the wiki. I post information that I use regularly for programming and VFX work, mostly so I have an online location for my notes.

When I am in the process of learning new things in regards to programming or Maya, I like to write notes on them here.

Blog : Renee Marsland - Brain Catalogue

## Topic Backlog

This is a new addition that I have made to help me categorize and prioritize the topics I want to learn.

Each item falls into one of three categories : *identification, discovery, or practice*.

*Identification* - These topics are the ones I have no idea about. I don't even know the topic let alone how to apply it. These can usually be tackled pretty quickly. Once an Identification topic has been identified we are done with it, I may convert it to a discovery topic or drop it from my list altogether.
**The goal in identification is to determine what it is, and if it might be useful to me**.

*Discovery* - These topics are ones I may have already identified but now seek to understand more deeply.

*Practice* - These topics are arguably the most important. This is where your skills are honed and your understanding solidified.

Backlog can he found HERE along with more details of the prioritization process.

## Categories

* Autodesk Maya
* Python
* System Admin

## Possible Open-Source Projects

How to contribute to open source

* Godot Engine : 2D and 3D cross-platform game engine.
* Catapult : Home for performance tools.
* Scrapy : A fast high-level web crawling & scraping framework for Python.

More good beginner open source projects to be found HERE.