Blog of Sara Jakša

Nonviolent Communication

Last weekend, I have attended the class for non-violent communication. One of the main messages of the non-violent communication is that we all have needs, and the conflicts only arise, when we are insistent on taking care of this needs in a certain way.

For me, the biggest take away was finding out which needs I was ignoring overall in the recent months. I have been making a couple of adjustments already based on that. I think having some experience in minimalism, it helps.

The empirical phenomenology also helped with discovering feelings. The feelings are supposed to be these things, that are based in the body. And I have gotten preety good over the last couple of years in recognizing them.

But instead of talking about this today, what I wanted to do it to record the techniques we used for later.

Empathic listening

  • Make sure to be completely present
  • Do NOT give advice, facts, own stories, pity or condolence
  • Do be quietly present, have focus on another person, repeat what they said and use sentences like: you feel like X because you need Y

Expressing your needs

  • OBSERVATIONS - When I see/hear X (the more exact the better, citations are the best)
  • FEELINGS - I feel Y
  • NEEDS - because I need W
  • ASKING - so I ask your for Z (something that the person can do and somebody outside can tell if they did it)

Here the suggestion was, that the worse the situation was, the smaller the step should be.

Self-Empathy

  • TRIGGER - What made you experience negative emotions?
  • THINKING - Let it all out...
  • FEELINGS - What are your body feelings?
  • NEEDS - Which need is not satisfied here?
  • SOLUTIONS - How could this need be satisfied?

The breathing is important part here.

Dealing with Situation

  • POWER
  • SHAME
  • CONNECTING WITH ONESELF
  • CONNECTING WITH OTHERS

Thanking

  • OBSERVING - What did this person do? Be exact.
  • FEELING - How did it make you feel?
  • NEEDS - What need was satisfied with this?

Personalities of Different Programming Languages

One thing, that I also will sort of need to do for my master thesis, is to get personality out of texts. There are different ways of doing this. In science, the most popular one is the LIWC, followed by models created from texts with MBTI types.

What I wanted to tested here was the IBM's model. I took the users, that had more than half of postings in one specific language, then I filtered out the users, which did not have a lot of posts and out of them picked the 15 most popular language.

The personality data is also added in the folder personality in the GitHub repository.

So here is first the graph of different programming languages and their personality. I decided to use the raw scores instead of the percentiles, so the differences are not as big.

I also then used this personality and tried to see, if I could cluster the languages. I got the picture below:

Some of the clusters are clear to me. Swift and Objective-C are both languages used for programming iPhone apps. On the other side, we have a C family, so C, C++ and C#. PHP, CSS and SQL are I guess the internet, but JavaScript and Ruby are put a bit separately. I don't know... since I grouped by personality, maybe I should be looking at how they work or something?

Predicting Personality with Factor Machines and Logistic Regression

This summer, I have attended the Zemanta Data Science Summer School. As the second practical project, we had to predict the click rate of advertisement. Me and two of my teammates ended up doing some light feature picking and testing different algorithms. We ended up testing five different algorithms: LightGBM, Naive Bayes, Factor machines and two different logistic regressions. I tested the VowpalWabbit logistic regression and factor machines.

Since the data, that we were using is something, that I can not publish (and probably also not any of the analysis, that we did), I decided to redo the two algorithms, that I had with a different dataset. Also, I have deleted the datasets on the last day of the summer school.

For at least two of my classes (Artificial Intelligence and Data Mining) I have picked the problem of predicting personality from text. Since I still had some data from that time lying around, I decided to simply try these algorithms also on this data.

The examples of the algorithms could be found on my GitHub.

How to Motivate People

I have a friend, who is really good at motivating people. He calls it his own distortion field.

So , a couple of months ago, I was talking to him and we came up with some of the things, that help with creating this field. In case, somebody else is interested in this, I am putting the list here:

  • Empathy
  • See the good/potential in people
  • Give people permission (to do what they want)
  • Time to think
  • Find the shortest possible path

PyConBalkan 2019

The last week, I have attended the PyConBalkan conference in Belgrade. So far, I liked all of the Python conferences, that I had attended. But this one would be the best one so far. But I can not really say why. I just know, that by the end of the third day, I was excited about everything. Maybe it was just sort of an energy? Or I got used to them, so I could enjoy them better? Because there were a lot of people that I knew? I sort of doubt, that it was the second one, because I had a bit of cold through the whole thing, so I think it was something else than me...

There was a lot of interesting talks. The talk that I remembered the most was the keynote from the last day on meritocracy, which was amazing. But there were other interesting one, like pair programming, language evolution, freelancing, article reading and others.

But as with any conference, it is was is happening in the halls and in the evenings, that is the best part. And even though nothing was 'organized' until the last day, there was still a lot of fun and high-quality hanging out that happened (at least for me).

I also had the talk and lightning talk at the conference.

I am grateful to the organizers, for organizing such a great conference, and to all of the amazing people, that I had met.

Ljubljana Python Meetup September 2019

In the September Python meetup, I had a trial for the PyConBalkan presentation. For some time, I was thinking of just ignoring it, because I was not that satisfied with the presentation. Even though the feedback that I got was relatively good.

Still, everybody should learn from their mistakes. So here are some of mine:

  • I picked the examples, that I thought will be interesting to the audience, and then I did not know what to do with them on the stage
  • I spend too much time introducing the topic instead of talking about the topic
  • Some of the buildup to my points was too long - for example the cooking example for explaining the role of preprocessing
  • Even though I had a long introduction, I did not actually explain, what I am going to be talking about

I also improvised a bit on the answering the questions, but here I am not sure what I could do better with preparation.

Here is also my presentation: https://sarajaksa.eu/content/presentations/2019/ljubljana-python-meetup-september-2019

The Importance of Knowledge

When discussing educational system, I sometimes hear an interesting opinion, that I don't really understand. It is that way of thinking is much more important then facts what we learn in school, so we should replace these facts with something.

Some at least admit, that maybe facts could be important, but they all seems to degrade it.

I can see it also with other people. When some problem is discussed, then then they ask me for my opinion. Even though I clearly am the person with the least amount of knowledge in the subject.

But every year I am more convinced of the importance of knowledge. I think the first good example was the Toastmasters. The reason, why I was at one point an important member was because I knew a lot. I was one of the people that knew when am I breaking the rules and why.

They say the same thing for writing. One needs to know the rules in order to know, when to break it. I am still far from this level, but I think it is the same principle.

And it is something that I am experiencing right now. At my job, I am constantly seeing where the holes in my knowledge are. And because of that, I lack creativity and problem solving that I would have, if I already knew some stuff. Which is why I really like my job, I have the feeling like I am improving fast.

In psychology, there is actually the principle of difficulty of transference. The skills or knowledge need to be at least on the certain level, in order for transference to happen. Which is why brain games usually don't really work that well, but speaking a foreign language can protect the brain from degeneration. In order to speak the language, it needs to be on quite some level, it is not enough to just know translations of some words.

In the same way, it is a lot easier to be creative, once I have at least the adequate amount of knowledge.

And this is something that I have forgotten recently. In the recent week, I have been slowly preparing the speech for my first programming conference. Before I had a practice run at our meetup, I was trying to came up with the examples, that would be interesting to other people. But in doing this, I ended up picking some examples, where I lacked knowledge (the topic analysis of PEPs was one such example). And these examples were then the ones that had fallen flat.

Which left me with not many examples left, but at least I made this mistake in front of a bit smaller crowd, that actually knew me from before.

Another point that I would like to make is, that more knowledge somebody has, the easier it is to acquire more. For example, when I am hearing people talk about the cars or something similar, it is hard to put the new facts in the right place. This is not true for facts about personality. Even if I find out about the next system of individual differences, I can find similarities with at least some of the ones that I already know. The same with language learning. When I started to learn German, I did it by watching BBC Sherlock in German. And I needed 15 minutes to understand the first word (langweilig). On the other side, if I do it now with Japanese or German, just by watching without subtitles, I can learn many more words from context in this time.

And yes, I can understand not everybody is interested in everything. As mentioned before, I am still quite unknowledgable about cars. The same could be said about many other topics. But I try to learn about the topics that are interesting to me or they are important for my life.

Also, one way of getting procedural knowledge, which allows us to act in the world, is through declarative knowledge, so facts. The procedural knowledge is the one that allows us to cycle, talk, dance, and act in the life. I guess one could say, that living minimalistically, or being self-disciplined is also a type of procedural knowledge.

So knowledge and facts allow us to be more creative, learn quicker and live better. Do we really need another reason to not bash them?