Blog of Sara Jakša

Topic Modeling of Python Conversations on Tumblr

I had presented a lightning talk on May Python Meetup.

What I did was take all the Python tagged posts from Tumblr. Then I topic analysed them and tried to figure out some interesting things.

Here are the interesting things:

  1. Python is connected to three big topics: nature (the dark night with a dog barking one), startups and coding.

  2. When ignoring the nature one, the trends show that from 2013 to 2016 there was a lot of interest in learning python. But then the interest shifted to startups. (Not sure why. Would be interested in finding out...)

  1. There are people posting python code with comments in Japanese. So, a Japanese python community? (not sure, why it is on Tumblr...)

  2. People really like to create chat apps. (again Why???)

My slides and code are also available.

Sort of MBTI of Problem Solving

This is the idea, that I am toying around with, and I am trying it out from time to time. Not sure, how successful it is practically, but it might help with some people. What it basically does, is to try and see on the problem from different perspectives, in this case, perspectives of different functions.

MBTI was designed based on the Jung's function theory. So Jung's said that we have four functions: Thinking, Feeling, Intuiting and Sensing, and each can be oriented inside or outside. I have to admit, I understand a lot more about inside and outside orientation, since I took first person research. Before, they would sometimes get mixed. For example, I could not understand introverted intuition, but if I think about it like an extroverted intuition oriented in the inside, it makes sense. But it did not make sense, until I started to observe myself.

And each function wants something. The thinking wants order, the sensing wants information, the intuition wants creativity and the feeling wants humanity. And then each one is turned in one side, the thinking wants order, but introverted thinking wants order in the thinking, and the extroverted thinking wants order in the external world. The same with sensing, the extroverted sensing gets the information from the world, and the introverted sensing gets the information from the inside us. The extroverted feeling wants to express humanity toward other people, so that we are more human to each other, the introverted feeling wants to express inner humanity, which is why it is connected to the values a lot of times. And so on and so on.

Penelope Trunk actually summarized what makes each type (not function) makes one happy and refuel them. I copied the information in the table below:

Type Activity
INTJ Needs to create order and structure from theoretical abstraction.
ENTJ Needs to visualize where an organization is headed.
INTP Needs to generate new theories or to prove or disprove existing theories.
ENTP Needs to understand the world they live in.
ISTP Needs to understand the way things work.
ESTP Needs to take action and get the job done.
ISFP Needs to feel immersed in the world of senses.
ESFP Needs to feel excitement and drama.
ISTJ Needs to fulfill their duty.
ESTJ Needs to enforce rules and/or traditions.
ISFJ Needs to create harmony and cooperation.
ESFJ Needs to make people feel good about themselves.
INFJ Needs to see the world of hidden meanings and possibilities.
ENFJ Needs to bring out the best in others.
INFP Needs to make the world a better place.
ENFP Needs to inspire and motivate others.

(As the unrelated note, this can also be used to help type people :) )

So, going from that tangent (but this approach can also work with the needs above), how to use thins to solve problems? Well, when we have a problem, we can think about, how each function would approach this. How can be bring order and use this to solve problems? When can be get more information? Is there something else we did not consider? How do we bring fourth our humanity.

Pydays Vienna 2019

This weekend, I have attended the https://www.pydays.at. This time I am not going to talk about the stuff I learned on it. Even though the Workshop: Analysing 200 Years of Political Debate was both funny and informative.

This time, I went with a friend of mine. And there are some things that I learned just from that.

I prefer buses to the cars. Mostly because I can read and work in peace and because I have more space. Mine friend was great and very understanding, but there is still a social pressure to not just put a laptop out and work on it.

Not to mention, the parking is expensive and it takes a lot of time to find the parking space. It is annoying.

The other point is, that I like travelling with other people. Having the company during breakfast and somebody to share the whole trip was surprisingly refreshing and nice. I am grateful, that I had company.

And that this company was better than the women in my room. They were not bad, but when we went out, they most of the time talked about travelling and men. The first is somehow interesting, the second not at all.

But it does have a negative side as well. Having him there, it gave me the excuse to not socialize with new people. I never noticed this explicitly, but thinking back, that has always been the case. Something to keep in mind.

I don't mind going to the events alone, I have a lot of practice, but it is nice to know, that I need to go somewhere, I don't know anybody, if I want to learn something new.

I also had this weird phase of knowing somebody, where I met them before, I remember them, but I have no idea, how to act around them. Maybe this is why I have problem making regular friends? Something to keep in mind.

Another thing that I noticed is, that recently I have a lot of signs to talk more at the events and to start organizing the events. I noticed both of them. Even more, I noticed that I started to seriously consider this. So this is something, that I need to keep in mind. Which makes me wonder, when will I ever get a normal job and a normal life?

The last thing, that I can remember, is that I finally understand, why I don't like the current feminism. I decided, that instead of attending the lightning talks, I will try to attend the woman-only mentorship meeting. What I realized is, that their complains are small. It is that they don't want to be brushed off (everybody is at one point, and standing for oneself works) and that culture changes, when there is more women (which is probably true, but that does not mean, one is better than another). But they framed everything like a battle.

Which is weird, since gender is not the only interesting difference between people. I wonder what people would say, if there would be groups like that for right-wing people in social sciences or groups like that for old people in the athletic sports or groups like that for sociopaths in teachers in early education.

Plus, I had not draw that many pictures in a day in a log time. You can see them here: https://sarajaksa.eu/2019/gallery/

Otherwise, I got some things to think about, some blog posts to write and some code to correct. So overall, it was a productive weekend.

Lent without Sweets

While I am not religious, the part of my family is. And it is the part of the Christian tradition to observe the Lent during the time from the carnival to the Easter. Well, I think it is called Lent, in my language it is called post, which does translate to Lent, and the descriptions on the internet match? We use the same word for fasting in my country.

I decided that this is a perfect excuse to try and do something that I had wanted to do for a while. Well, I actually wanted to do the no sugar thing, but that seemed a bit too hard. Especially with how little willpower do I have to resist chocolate. And I ate a lot of bread during this time, and I know there is sugar in bread.

I still remember the first day. I think I came to stare at the Milka chocolate. I would be standing there, with the drawer with sweets open, and I would stare at it. The only way that I could survive that, was imagining, that after it is going to be over, I would eat it. It is only these two rituals, that helped me made it through the first couple of days. And I did not cave.

The days afterwards were easier.

I did notice, that it is convenience and more imagined testiness that made me choose sweets. Why do I say imagined testiness? Because none of the sweets are better than raspberries, but I would feel a stronger pool towards sweets. I would feel stronger desire for sweets. (I still do)

But after I figured out the snacking part, it was easier. I always had a thawing raspberries with plain yogurt in the refrigerator. And I ate a lot of oranges. Lots and lots of oranges and other fruit, but the oranges predominated. And drank more strawberry smoothies that I had before in probably more than a year, and that was all toward the end of it. Now, I am not sure how much healthy it was, but it sounds more healthy.

There were three times, that I broke the post and they all show, where do I need to be careful, when I am going to attempt it in a long term.

The first time it was, when I used sour cherries in my yogurt. I still live with my family (I know pathetic :) ), and there were some left over sour cherries. I added them to my yogurt, since I hate food waste. Only days later, did my father told me how much sugar did he pour in (a lot). And this food waste perspective will bring me trouble. I have not been eating meat for almost a decade now, except in the situations, when it was clear, that it will be thrown out. The urge is getting smaller and smaller each year, but it is still there.

Well, the problem will mostly solve itself, once I get my own place. It is the food waste in my home, that is the most hard to deal with. Which is good, because I don't want to spend another decades, going through that again. But on the other hand, I also don't want to wait until I get my own place. Just because I have a limit of about year and a half, does not mean, that it will happen much sooner than that.

Which is why, the two weeks that I spent at the sea side were easier, even though the next two transgressions happened there.

The second time was because of my grandmother. She knew, that I had a no-sugar eating period, and she sends me a apple strudel with my grandfather. And then she pester him, if I am eating right. And she is the type of person, that does not like sweets at all. So I caved in the social pressure. And it was too sweet for my taste buds. But this I know how I will deal with eventually. By going through it. On the long run, once I go do it full time, this is not going to be a problem for long.

But if I am not full time, then my family tries to be helpful by making me to try and break the commitment.

The third one was the first day of menstruation. I think this will be like my cheat day of the month, because there is no way, that I am going through that pain with no chocolate.

Surprisingly, the maturational pain this time around was shorter than usual. And I do wonder if it was because of lack of sugar? Or maybe the chocolate had a bigger effect, because of the lack of it in the days before? I don't know...

Now I am back to my sugar filled days, and I wonder if the sudden lack of productivity compared to that time is the consequence of that? Because I am back on eating a lot of sweets. But I also know, once I came from Austria, I am going to try and make this a more permanent, even if not as strict endeavor. Maybe starting with having the workdays or weekends to be sugar free, with no restriction to the rest of the days? I am still thinking about it.

The Changing Focus in Life

Relatively recently, I was having a lemonade with a friend of mine. I mean, considering I was not in the best mode that day, I hope she did not find it a complete waste of time. :) But there was an interesting comment, that she said in the end. I don't remember the exact words, but she said something like, how she preferred my shorter blog posts about personality, than what I am currently writing.

That got me thinking a bit. I mean, I don't actually expect people to read this blog. It is more a documentation of my thinking process, than a marketing tool. But that also means, that it reflects, what I am currently thinking about it, and I am currently in the phase, where individual differences sort of took a back seat for a while. Programming seems to be in the front for the last couple of months. And I think this is reflected in what I am writing on my blog. A lot more data science/programming posts, less cognitive science/individual differences posts.

But what does this mean for me? There are at least a couple of things, that have to be kept in account. One of them is from decision making. I remember reading in an interview of similar with the Supercasting author Tetlock, that the more people are known for something, the less likely they are to change that part of them. Which means, that even though I don't expect people to read these notes to myself, I might still be putting myself in the mold.

I have recently read a couple of things about changing opinion. From situational factors, to individual factors, to how much message is targeting the right level of personality traits, to the self-concept and how important that identity is to people and so on. And a lot of them work in a way, that they keep the opinion stable. Though, if you have the minority with opinion, that they are not willing to bend on, this can shifts the entire societies (economists have some pretty interesting simulations).

This can be then brought together with the theory, that a classmate of mine from Vienna presented to me last year. The theory says, that we have a huge conformational bias, and that is why conversations exists, so we can come up with the better, ... I don't know if consensus is a good word, but sort of going in this direction (and I probably butchered the theory as well :) ).

But people change. I am reminded of the quote from a series that I watch: "Change happens. Tragedy happens. People make choices and those choices affect everyone else." Well, I have not experienced a lot of tragedy, but the change does happen. Some parts of us are shed away, some are tired on and some of the tried ones are then adopted. Though there are things that I can see are going to come back. As long as I don't understand people enough, to know what to do with them without analysing, that long I am going to keep coming back to individual differences and personality. On the other hand, who needs Toastmasters, when you can have a lightning talk on each Python Meetup? Or find some other, more interested (even if more demanding) audience? (Just a joke, Toastmasters does have a role in helping people get rid of fear of public speaking and give the people the opportunity to socialize).

So on the end, what does thins means? Probably nothing. I don't think I will start writing more likeable material for the audience. At least not yet (nobody knows what the future holds (I am using a lot of parentheses, am I not?)). Even after having more than 500 entries here, I still have no idea, what do I want this blog to be, so for now, I will continue as I did so far. Because I don't think I want to turn this into personality blog (even if I though about it a time or two before).

The Role of Role-playing

In one of our master seminar sessions (where each of us presents what we are doing for master thesis) there was an interesting presentation. That presentation was about using role playing to increase creativity.

The topic was presented by a person who plays LARP, where he noticed that a lot of times people can use role playing to get over their fears or to change themselves. He gave an example of how people can get over their fear of public speaking, when they are in the character.

That got me thinking. While I had never LARP-ed, I did regularly attended the story games meetings in Vienna. Plus, I have that weird habits, that freaks people out, where I start thinking about the story and I play it out, and people then think there are multiple people there, because I change voices. But don't worry, I will try to concentrate on the first one in this post.

When I look over my experience of this, I notice some weird themes going on them. I think that there were always traits, that reflected myself. For example, unless the story explicitly demanded otherwise, I always had a badass characters, that were amoral, always depended on their own intelligence and did not usually go into cooperating, unless it was clear what was in it for them. I mean, in one story, we ended up cutting every man's dicks. In another one, I was playing that badass woman named Irene, who wanted to take on the criminal families of Victorian (I think, it was Victorian?) London by herself. In another one, I was given a character, but he still tired to manipulate everybody around him. In my defence, in the last example, I did give the grandma, who wanted to kill her sick husband, some sweets with heroin. On the other side, I did not tell her, she just helped me bake sweets with heroin. I think you get the feeling.

I do wonder, if this is my base personality coming up. Let me take example of non-cooperation and manipulation of people. When I test for the big five, I tend to test as very low agreeableness. People with low agreeableness tend to be more direct, more competitive instead of the cooperative, and not care about the people that much. The last one is probably the reason, why we on average score lower on tests of theory of mind and empathy.

But in the real world, I needed to get socialized. I can cooperate with people, in a lot of cases, because of the social structures, the cooperation is the -easiest way forward. But in the story games, there is usually a world, where at least some of these social structures are gone. In this case, I am going toward what is more natural for me, and this means... well I don't really have a word for this, but you have a description up above.

Makes me wonder about the role of social structures as well. Right now, I am reading the book by Philip Zimbardo titled The Lucifer Effect. I am at the start, and it starts with the description of the Stanford prison experiment. This is the one, when normal people were divided into prisoners and guards and they had to stop it prematurely, because of the extent of the abuse, that happened there. The thesis of the book is, as far as I can tell, that it is the situation that define the person.

Well, in science it has been excepted that both inner qualities (like genes and personal environment) and the situation make us who we are. Even if I have to admit, that my interest always tinted toward the former. But that makes me wonder in the different direction.

The role-playing (not just story games) can break down and create new social structures. Which would be a good way for better personal development. One is the obvious one, that my classmate was tackling. Being a different person can help us be more courageous and creative. But I would go in the other direction, it can also lead to better self-knowledge.

Just like it showed me, that deep down I am a manipulative person (I just don't let it surface as much). Or a more courageous one, that I would like to admit. I also think that maybe it can help other people discover, what they are like deep inside.

You will Learn a Lot and you will Meet a lot of People [Python Meetup Ljubljana April 2019]

So, last month I was on my first python conference. More about it can be found on my summary blog post. In this blog post, I am going to concentrate more on the advice for anybody like me, when they are going to attend their first python conference.

So, when I went to my first one, there was just two pieces of information that I had. The first one was, that some members of the Python community in Ljubljana talked about it like it was the best thing since sliced bread. The second one was the one that I directly solicited. When I was at the last Python meetup before leaving for it, I asked one of the person present, for whom I knew he was at the programming conferences before, if he had any advice. His answer was, that I will learn a lot and that I will meet a lot of people.

Sure, it helped my figure out what to expect, but this is not actually advice. It does not tell me what to do at the conference. Plus, from what I find out at the conference, could also me misleading. No everybody learns a lot and not everybody meets a lot of people. So I will try to say what worked for me and how I decided what to do, for people that are maybe in the same situation than me.

So lets start with the first part of advice: "You will learn a lot". I actually had a conversation about this piece of advice with at least two way more experienced people than me. The first one was on the very beginning of the conference and the conversation was mostly concentrated on me. He agreed with the advice, so there was something about it. But the conversation was about me, and he knew at the time that this is my first time. The second one was on the last day of the conference, during the lunch break. I talked to another person, and I asked him, what he learned from this conference. He started with a remark, that he did not learn anything, but that this is normal. Then he paused and told me, that he learned something new from the talk, I think it was about network penetration testing? I am not sure, I was not on that one. He sounded surprised. And he then shrugged, that next year he can go back to not learning anything new.

So that means that it is possible to participate in the conferences and not learn anything new. Assuming a person is somebody that has a lot more knowledge and program a lot longer than I do. And I don't really know, how to solve this for the people, since I am far away from that stage.

But here is the two piece of advice for people, that are a bit more on the beginner side. The first one is that workshops are better than talks (on average). And that there is a difference between talks - there are inspirational talks, marketing talks, technical talks and skill-based talks. And each one has it pros and cons and each one is good for different things.

Let me start with the first one. Tutorials are better than talks. There are a couple of reasons for this. The first one is, that workshops are usually longer, so there is more that can be covered in a tutorial as compared to the talk. The second one is, that in tutorials, they already force you to use the new found knowledge immediately, instead of a talk. And an important one for me is motivation. I have way too many thing, that I want to try. And I don't have time and energy to try all of them. So instead of listening to another talk, to give me even more ideas, I can just start working on one as part of the workshops.

But what I also noticed is, that they are all basic in that specific subfield. So, if you already know, how to do a networking analysis, maybe you would not get anything from a workshop on network analysis. But no matter how experienced programmer you are, if you had never tried it, like writing a GitHub bot or created a passwordless authentication service, I still think they can be useful. And yes, there were all the workshops, that I attended at my first Python conference.

The second piece of advice is based on the differences between speeches. There are a couple of different types of speeches, each with their own role.

Let me start with the inspirational ones. These are the talks that talk about something they did, which is inspirational, but there is nothing actionable that can be gleaned by it. The example of a talk like that was the one that talked about, how they are sending the satellites in space, and then take pictures. I mean, it is inspirational and it can show what it is possible to do with python, but otherwise... not that useful? I don't know. If anybody is attending the conference for the motivation, these are the talks to listen to. I don't, so I did not find them that useful.

The next one, that I would sort of group together with the upper ones were the 'marketing' ones. These were the talks that presented services, that could be used by us or companies. The Arvil one and the Google API one were an example of this. Maybe even MindsDB would also be put in this group. These are the talks, that would not make one a better programmer, but they might be useful to people, that are building stuff and running companies. I mean, I am an economist and I believe in the division of labor, so I understand that sometimes it makes sense to use something, that some other people did. Since it would likely be better that something you would come up with yourself. So, from this perspective, they are useful. But I am a student, and my job is in react-native, which is not Python, so the only thing, that I might be using is MindsDB, since this is something that I could see using for my own projects. So these were useful in a different way and to the different people, in this case the people with companies, who don't only have to worry about building stuff.

The I would combine the technical and skill-based ones. The technical ones was for example the detailed examples of Django's ORM or that guy who talked about the weird things python does because of optimization. The skill based one were the ones like about the time-zones, OAuth and GutHub bots. But I think there is a continuum, based on how high level vs. going into technical details they were. I think there were the ones, where I actually learned new stuff. Not as much as with tutorials, but this were the talks, that I would recommend to my past self. I think these are the most useful talks to a person at my level with my interests and in my position.

But as I said before, not everybody is in my position, so I hoped that I clearly explained the difference between talks and for what is each type useful. But what I would add to the end is, that if you are already at the conference, attend as many workshops and talk as you can. This can also be helpful and maybe you realize that some other things, that I did not even notice, are what is important to you. At least for the first one, attend as many things as you can.

Let me now go to the second piece of advice, which is "You will meet a lot of people". Well, this one is depends. And I figured this one out on the first day, before lunch. My goal for this conferences were mild, which were talk to at least one person (which I managed to do, before the conference officially started) and figure out for what are these conferences good at and if I wanted to add them as part of my plans.

But just because this happened, this does not mean, that I could not go with the flow. But not a lot of things work for me, when I go with the flow. I have low extroversion, which means that I don't get motivated by achieving more and more and I am an introverted thinker, which means that I analyse everything. And things did not go alright. In the first day, there was a Slovak track and there was an English track. But there was one Slovak presentation in the English track as well. So the organizers told us, that we can go outside, where they organized the discussion. Well... for me, that ended up being an hour, that I spend to myself.

I came outside and I was not the only one. There was a small group, that stated a discussion about the details of technology, which I could not even follow along enough to ask smart questions. So I left, and I realized, that I needed a plan of attack for my socialization. But of course, I did not make that plan.

But I knew, that there are three ways of attacking the socialization problem, and I managed to use all of them over the remainder of the conference.

Even before that, I relied on the luck strategy. Simply wait for people to approach me. This worked for the talk before the beginning of the conference and this worked for the person I spend talking with during my first lunch. They were the ones that started talking to me, without giving them the reason to. If you are alright with hanging around five people at the conference, this method works quite well. Just be yourself, and there will be people that will try talking to you. It is a very passive, low-maintenance way of doing it.

And I planned to stick to it for my conference, until I heard the announcement, that everybody can have a lightning talk. I think the one advice, that I had heard about social skill, that gave me the most positive impact, was to give a talk. When you give a talk, then people come and talk to you. Especially, if they are interested in the same thing you presented. It is a great way to talk to people you never talked before.

The reason I needed a strategy like that is, that a lot of times I would come to the group meeting, where I did not know anybody, and I would be forced to socialize. So this is one very easy tactic for me. The other two that I developed were talk to the shyest looking guy in the room and stand next to the group until they include you. But giving a talk is the most fun and the easiest for me to do.

So I knew, that I would need to give a lightning talk. And I tried to talk myself out of it, but damn when a part of me knew, that I could not. Having somebody else voice in my head (if you are by any chance reading this, you know who you are) did not help with discouraging me. It was pushing me to do it. Since than, I had internalize, that these 'voices' can't make me do something, I don't want to do, but they could seriously mess up my timeline and my reputation. Thankfully, I only care about the former of the two.

So, I knew I will have a lightning talk. But I had nothing prepared and I did not have a time for myself to prepare anything. So I just sort of recycled my first lightning talk, that I had at Python Meetups in Ljubljana. Which was months ago. So what I did, was just basically rant for about three minutes, with about 200 listening (my estimation) and a lot of them not understanding my arguments (based on the fact, that multiple people afterwards told me that). I mean, if you can come on the stage and say something, you will end up creating better impression than I did. I mean, I am sure you will be hard pressed to rant more than me, be more unprepared than me, be less clear than me and choose a more controversial topic than me.

So take my advice and actually prepare a lightning talk in advance and then give a lightning talk. This will take care of a lot of socialization, since you will give people a topic to start a conversation with you. And people will do this. I call this a lecturer type of socialization. It takes a couple of minutes of work and in my case around 24 hours of anger, but if you know in advance that you will do it and you prepare for it, there will be no reason for anger.

The third one I call the pick up version of socialization. It is the most active version, but I think it can still be useful. Especially for people like me, who for some reason induces fear in other people. But it is easier to use in the socialization events, than at the conference. Which is come to people and start having conversations with them. Which in my case looks like this: I get to a group of people, I sit next to it and I listen and a lot of times (but not always) people will include you in the conversation. I actually had a lot more of success rate with this technique in the programming community, than for example at the neuro-linguistic programming lectures or at personal development seminars. I have a hypothesis, why this is so, but I am not sure, if it is right. I think the reason is, that programmers are stereotyped as people without social skills. Stereotypes are stereotypes for a reason, so that means that a lot more people in this group probably had to work on their social skills. So they are more attuned to the social struggles of other people.

It is like a comment from this article, if you are wondering, why we needed to explain the fact, that some people use empathy all the time, then you are probably normal.

But this very crude techniques, along with the lightning talk that I gave, allowed me to talk over dozen of people in one evening. And when I say that, with a lot of these people, I ended up having talk, that went beyond small talk. So in that way, yes, I did meet a lot of people, but I ended up having to actually do something about it.

Maybe you are a type of person, that don't have to do this. But there are at least three reasons why I needed to be more active. First, I have a low extroversion and low agreeableness score. Which means, that if I don't talk to anybody for two weeks, I will not find anything wrong with it. I don't have the innate drive and wish to interact with people. If you have that, maybe going ti with flow would work. The second one is that people are afraid of me. Even people that never talked to be before. And I got this feedback again at the socialization event at the conference. When I was standing there talking with two people, somebody came there. And then he asked me, if I was the one that gave that lightning talk, which I was. Then the person continued, that they have been discussing that for the last hour, but people were too afraid to ask me to join.

But I knew about this two reasons, the third one was a surprise. And it has to do with me being a woman in a male dominated event. What the third wave feminists did, was instill a fear in some people about talking to the 'marginalized' people in environment like that. Which apparently a woman in programming is? And they should not make us feel unwelcome, because we are 'victims'. God, I am wondering if stabbing one of them would make it easier to deal with them. WOMEN ARE NOT VICTIMS. I hope that was clear enough. I can't believe that this is one of the reasons, why we need socialization tactics.

So summarizing the advice is, give a lightning talk and attend the socialization events, joining the groups that already exist. If you are too afraid to give a talk, then you will have to work more on the starting to talk to people part, or be alright with talking to only around 5 new people. Which is also a good strategy, since these things compound. They introduce you to new people and so on. But if can go over the fear of public speaking, then definitely go for it.

So the next time somebody asks me for the advice about the first conference, I will probably start with the same one: "You will learn a lot and you will meet a lot of people". But then I would continue, with, attend as many workshops and talks as you can, give a lightning talk, go to the socialization events and talk to people there.

Different Social Understanding

I am right now going through my philosophy of mind notes (I can't believe, that I am only doing it now - but it does give me perspective, to only take the most interesting things). While toward the end of the semester, we also dealt with different theory of how we act in social interactions. So here I am going to try and write, from sparse notes and memories, what these different theories were.

The first theory is the folk theory of interaction. This one is understanding people based on their beliefs. So, each person is having beliefs and desires and we can predict intentions from it. So, a person is seen walking quickly, so they must be in a hurry sort of things.

In that was, it is a bit similar to the theory of mind, where we use the systematic models and law-like knowledge of people, in order to make prediction. So, a person knows about her opinion, so he will act like that sort of way.

The next one is simulation theory, where we simulate what is going to happen. This can happen subconsciously as well. The emotions are used and the main question is what, not how. So, what would I do?

The next one is sort of embedded theory. Normal children learn interaction skills through responses, since understanding of situation is part of the interaction. That is how we can immediately recognize that smile is joy, in a first person way. Here, not understanding another person is a feeling, not lack of knowledge. But there is a default assumption, that we are similar and act in accordance to social norms.

The last one is from enactivism. It is the structure of the environment, that makes people predictable. We know, how people will act in the funeral or while waiting for the bus and so on. Here misunderstanding means, that there is a lack of mutual reciprocity feeling. It uses the narrative building to create a story. We also create beliefs in a sense-making activity through interaction with other people.

I guess, at least phenomenologically, we use all of them in some situations. Which makes it so much harder to understand.

Change Latex file to Word

I have recently tried to change my latex file into doc. I needed to send my economic thesis to somebody, and they don't know what to do with the latex file. The first time, I had send the pdf, but they prefer making comments in word.

So I figured out, that I am just going to transform pdf to word, and I already did once. This time, the results were not pretty, so I tried to find another way.

The next one was pandoc, which have the ability to transform latex to docx, but the first time I tried, there was no citations (which is a big no-no for master thesis). So I tried to include the citation.

When I was doing the transformation the first time, it just hang there, and nothing happened. When I came to check my bash history right now, to copy the one that did not work, and I figured out, why it did not work. The following one did work right now:

```bash
pandoc texfile.tex --bibliography=bibfile.bib --csl=style.csl -o finalfile.docx
```

Which means, that I sent the wrong version to a mentor again. That is embarrassing. Really embarrassing.

Well, while I was trying to figure out, why it was just hanging (I forgot to include the latex file), I checked the internet. One thing that they noted was, that bib file should be ASCII only. Well, mine certainly was not. So I had to find a way to find these non-ASCII characters. So I found this somewhere, which prints every line with non-ASCII characters and highlights them:

```bash
grep --color='auto' -P -n "[^\x00-\x7f]" filename
```

The --color tells us, when to highlight things (always, never or auto), the -P means that the expression is Perl regex expression, and -n also prints line numbers, so things are easier to find in the file.

So, if anybody want to transform latex to word, this is a way to do it.

Analysis of My Citations for Economic Master Thesis

The Jupyter-Noteboom can also be found here: My_Citations_For_Economic_Master_Thesis

I have finally sent the final version of my economic master thesis to my mentor. While I was doing this, I decided to try and analyse what kind of citations was I using in my master thesis.

Importing the libaries

import os
import re
import pandas

Regex patterns

citations_re = r"cite{.+?}"
re_entry = r"@\w*{.+?timestamp.+?}"
re_type = r"@\w*{"
re_journal = r"journal[\s]+?=[\s]+?{.+?}"
re_name = r"@\w*{.+?,"
re_year = r"year.+?=.+?{.+?\d+?.+?}"

Get all citations from tex files

In this stage, what I did was go over all my tex files and put out all the citations (\parencite{}, \cite{}, \textcite{}).

all_citations_in_my_work = set()
for filename in os.listdir("files"):
    with open(os.path.join("files", filename)) as f:
        data = f.readlines()
        data = " ".join(data)
        all_citations = re.findall(citations_re, data)
        for s in all_citations:
            s = s.replace("parencite{", "")
            s = s.replace("textcite{", "")
            s = s.replace("cite{", "")
            s = s.replace(" ", "")
            s = s.replace("}", "")
            if "," in s:
                s = s.split(",")
                for c in s:
                    all_citations_in_my_work.add(c)
            else:
                all_citations_in_my_work.add(s)

I used 157 different citations in my work. Which I think is not bad for a master thesis.

len(all_citations_in_my_work)
157

Preparing bib for parsing

In the next stage, I parsed the bib files, so that I could search them based on what I wanted to find.

lines = ""
for filename in os.listdir("bib"):
    with open(os.path.join("bib", filename)) as f:
        data = f.readlines()
        data = " ".join(data)
        lines = lines + data
lines = lines.replace("\n", " ")
lines = re.findall(re_entry, lines)

From what scientific journals were my scientific articles

In the next step, I parsed the data to try and figure out, what scietific journuals were I using.

my_journuals = dict()
for line in lines:
    name = re.findall(re_name, line)
    try: 
        name = name[0].split("{")[1].replace(",", "")
    except IndexError:
        continue
    if name in all_citations_in_my_work:
        t = re.findall(re_type, line)
        t = t[0][1:-1]
        if t.lower().strip() == "article":
            j = re.findall(re_journal, line)
            if j:
                j = j[0].split("{")[1].replace("}", "")
                if j not in my_journuals:
                    my_journuals[j] = 0
                my_journuals[j] += 1

Here I first counted the number of articles.

articles = 0
for j, n in my_journuals.items():
    articles += n
articles
97

And then I counted the number of journuals, that I was using.

len(my_journuals)
66

So I took about 1.5 articles from each journual.

articles/len(my_journuals)
1.4696969696969697

I then tried to see, if there were any journuals, that I used more. I used Computers in Human Behavior the most. You can see below, which ones did I used more than twice.

my_journuals = pandas.DataFrame.from_dict(my_journuals, orient="index", columns=["Count"])
my_journuals.sort_values("Count", ascending=False, inplace=True)
my_journuals.reset_index(level=0, inplace=True)
my_journuals.head(5)
index Count
0 Computers in Human Behavior 13
1 Personality and Individual Differences 6
2 Annual Review of Psychology 5
3 Social Media + Society 4
4 Information Systems Frontiers 3

What type were my sources

Next I wanted to see, what different types were my sources. Here is the code.

types = dict()
for line in lines:
    name = re.findall(re_name, line)
    name = name[0].split("{")[1].replace(",", "")
    if name in all_citations_in_my_work:
        t = re.findall(re_type, line)
        t = t[0][1:-1]
        t = t.lower()
        if t not in types:
            types[t] = 0
        types[t] += 1

As you can see, the articles were the most frequent (99). The books were less so, even combining the whole books and the chapters (18). The rest were used 5 times or less.

types
{'online': 2,
 'www': 1,
 'electronic': 1,
 'report': 3,
 'manual': 1,
 'inproceedings': 5,
 'incollection': 5,
 'book': 13,
 'article': 99,
 'thesis': 2}

From what year were my sources

Next I tried to see, from what year were my sources, that I used.

my_years = dict()
for line in lines:
    name = re.findall(re_name, line)
    name = name[0].split("{")[1].replace(",", "")
    if name in all_citations_in_my_work:
        t = re.findall(re_year, line)
        if t:
            t = t[0].split("{")[1][:-1]
            if not t in my_years:
                my_years[t] = 0
            my_years[t] += 1
my_years = pandas.DataFrame.from_dict(my_years, orient="index", columns=["Count"])
my_years.sort_values("Count", ascending=False, inplace=True)
my_years.reset_index(level=0, inplace=True)
my_years.sort_values("index", ascending=False, inplace=True)

I have used 1 source from this year. It seems that most of my sources were recent. The most sources were from last year, then the year before, then four years before (not sure, why there are not more sources from 2016).

Looking more into the past, oldest reference was from 1970. I used 4 from the 70', 1 from the 80' (so before I was born), 3 from the 90' and additional 33 from the 00'. All the rest are from the time, when I was already attending the university.

my_years
index Count
18 2019 1
0 2018 26
1 2017 15
7 2016 6
2 2015 12
9 2014 5
3 2013 8
6 2012 7
10 2011 5
8 2010 5
4 2009 8
13 2008 3
5 2007 7
22 2006 1
12 2005 3
11 2004 4
26 2003 1
14 2002 3
24 2001 1
16 2000 2
17 1999 1
23 1991 1
19 1990 1
25 1988 1
15 1977 2
21 1973 1
20 1970 1