# Xylix's blog > https://xylix.github.io Xylix thinks aloud here. Topics include but not limited to: Rationality, programming, books, writing and role-playing games. ## Tags - [book](https://xylix.github.io/tags/book) - [confusing](https://xylix.github.io/tags/confusing) - [effective-altruism](https://xylix.github.io/tags/effective-altruism) - [math](https://xylix.github.io/tags/math) - [personal](https://xylix.github.io/tags/personal) - [presentation](https://xylix.github.io/tags/presentation) - [programming](https://xylix.github.io/tags/programming) - [quotes](https://xylix.github.io/tags/quotes) - [rationality](https://xylix.github.io/tags/rationality) - [research](https://xylix.github.io/tags/research) - [review](https://xylix.github.io/tags/review) - [ttrpg](https://xylix.github.io/tags/ttrpg) - [work-in-progress](https://xylix.github.io/tags/work-in-progress) --- ## Can Claude understand (modded) Minecraft? https://xylix.github.io/blog/claude-minecraft | 2026-01-29 | tags: programming, personal > No. Claude can Code but Claude can't Minecraft Recently, in December '25 and January '26, Claude Code has kept surprising me with its level of quality in output. But there are specific domains where it falls short, and the chat interface seems significantly worse than Claude Code. Let's explore one such circumstance now. # Exploration 1 - Sonnet 4.5 and the chat interface I've been playing a lot of modded Minecraft recently. It's all been on the FTB Evolution modpack, which is a year old and has approximately 500 mods. There are some questions that are quite specific to the modpack or recent updates to mods, which means that there aren't good answers available by Googling, or the good answers take too long to find. So I tried using Claude to solve some of my questions. But it seems Claude (mostly Opus, but also Sonnet) keeps being lazy, imprecise, or suboptimal in response to my queries. ## Example 1: Item Sorting I ask: "Can I do an automatic sorting setup so that a pipe/input system filters for example spawners, potions, armour, weapons into different chests, and stackable items into my ME (digital storage) system?" One of Claude's first suggestions is: "Use an import bus filtered to the items that you don't want to import." Which... is missing the whole point. I don't want to enumerate each item. That's why I want a "smart" solution. ## Example 2: Power Generation I ask Claude what are the best ways to burn diesel or boosted diesel/turbofuel into electricity (FE) in the modpack. It lists ~4 ways. It is being very lazy and not looking at the modlist at all to actually enumerate, and it also got the numbers wrong. The solution it listed as best actually produced ~5x more energy. 5x wrong is kind of a lot when I'm asking for a generator comparison. ## Example 3: Hallucinated Blocks Sometimes it tells me to use a block, machine, or filter that seems like it could exist but doesn't. Very textbook hallucination. # Exploration 2 - Claude Code Bothered by the lackluster performance, I went and tried to use Claude Code for this. I created a folder for it, put the modlist in the folder in a CLAUDE.md file, and gave it the filepath to the folder where the minecraft instance is located so it could check configs autonomously. This did not help at all. The Claude Code performance in similar dilemmas, including the power generation example from above, was still quite lackluster. It doesn't manage to fetch the numbers and just do the math, instead getting sidetracked into (probably) parroting general (often outdated) wisdom it has learned from the copious amounts of online content the base model has been trained on. I did also try to prod Claude to read the actual mod project source files for information, but this led into my tokens being used very fast and context auto-compaction mid-task, which is suboptimal for a good performance on the task. # Conclusions I think part of the problem here is that Minecraft tech mods together have enough data to train on that Claude has some general intuitions. It feels a bit like asking someone who played a bunch of modded Minecraft some years ago, forgot or confused a bunch of mods and numbers, and also is being kind of lazy about checking docs or Google for info. Claude has major problems grasping nuances between mods, especially mods that have similar features. It also has trouble with modpack confusion. It keeps thinking that FTB Evolution contains mods that it doesn't, even when I basically every time specify I'm using FTB Evolution, and I asked it to make a "memory" about the modlist and am using a project for this. The contrast with Claude's performance when programming a small-to-medium sized project is striking. When I'm working on code, Claude can read the actual files, check documentation, verify its assumptions. With Minecraft mod related dilemmas Claude just doesn't end up doing enough leg work to compensate for the outdated info in its training data. The intuitive solution to this problem would be for Claude to be able to query the in-game information that the player can retrieve from JEI / REI or in-game mod documentation, but this would require an API for Claude to query the game instance I'm playing or for it to have its own instance. (An LLM having a separate creative world where it can try solutions and then tell me which of them worked would be quite cool, but I think working in 3d videogame worlds is out of reach for current models. But perhaps something to try and document how far out of reach.) --- ## Effective Altruism? https://xylix.github.io/blog/why-effective-altruism | 2025-06-14 | tags: effective-altruism, personal > Why I'm an Effective Altruist Since there's no point hiding my EA-ness anymore, what with starting as Effective Altruism Finland's Executive Director in September, it is time to take the cat out of the bag and explain one of my most significant ethical stances - considering myself an effective altruist and considering effective altruism one of the important priorities of our time. ## Why now? Why not before? I am scared. I have been scared. I used to be too scared and imposter syndromed to properly apply for EA jobs. I fear there is a pull that value-aligned work has that heightens my changes of a bad burnout. Also combining a free time community with a job is scary. My emotional motivations for EA have waxed and waned over the years. Due to life events, mental health, money, and social connections. But when a person close to me died last January, I had to face some of my discomfort and stuck thoughts. Especially around the reality of death, and how bad, horrible and eternal it can be. And how many lights are lost from the world, every year, every month, and even every day. After processing a lot of my sorrow, what was left was resolve. Anger, defiance, even recklessness. I don't want to go on living more years while keeping altruism as a side project in my head. I want to channel this energy. And there is only one way to make death pay. Chip away at him. Make him stop. I shall do my best. # Why do I strive to be an effective altruist? ## Guiding light I used to think that the guiding light for what is ethical to do with your life comes from a sense of guilt, duty, and "needing to do more". I no longer agree with this. Feelings like this can be motivators to introspect why you feel like you're not doing enough, or why you are feeling guilty. But I don't think they work as long term motivators as well as something more positive. [Replacing Guilt](https://replacingguilt.com/toc/), a blog sequence about grounding motivation and action not in guilt and shoulds but in wanting to do things that aligns with your values, was an important read to me around 2020/2021, but I didn't quite internalize the core lessons back then. I have come to think it is especially important for me to cultivate a sense of hope, and positive future. The positive lightcone is where my motivation shines from, even when the world looks dark. I trust in the value of the world and existence, even when times are hard and I have a hard time trusting myself. ## State of the world I have strong values. I feel an internal sense of rebellion over the state of the world. Millions, billions, even trillions of lifeforms die and suffer every year, and fail to have positive lives. Trillions of dollars of resources are spent on zero-sum games keeping the wheels turning (military spending globally in 2024: \$2.718 Trillion), and only billions ($212 billion in 2024 according to [OECD](https://www.oecd.org/en/topics/official-development-assistance-oda.html)) on doing good. I have not really believed in strong forms of egalitarianism since my teenage years. I do not think the core problem in the world is that resources need to be spent equally, relative to some measure. But I do think it feels wretched how much surplus the richest 10 or 20 of countries have economically compared to the least well off 50%. Spending something like 5-10% in foreign aid feels to me like it should obviously be the long term goal for rich countries.[1] But then, my answer here is not that we should aim for _less_ surplus. We should grow it, grow it much more, grow it ethically, and allocate it well. We should strive to build a world economy that serves each human and each animal to a good degree. That was a bit of a rant. Let's get back to values. ## Felt sense of right I have a really hard time splitting each of these between being an internally felt core value, and being a rationalization of some kind. Let's try anyway. Things I feel _clearly matter_: 1. I have been granted the gift of existence, by the universe and all that humanity did before I was born. I feel it is only fair for me to want to pay this back. 2. I do not feel like people have a duty to give to altruist purposes from their _necessary resources_ but I feel like people have a duty to give from their surplus. (The line between surplus and necessary resources is hazy at best.) 3. There is so much good that could be done in the world with just a bit more resources for good purposes. Instead resources are spent on zero-sum-games, suboptimal policy and the tenth thousandth high budget Hollywood movie. - For what it's worth, I think humanitys talent for creating new art is something to embrace, and not smother. But allocating resources to new art is different from producing the tenth thousandth-and-first Hollywood movie. 4. There are large amounts of existing beings who could have significantly better lives. 5. I think there are large amounts of beings who do not yet exist but could have decent-to-excellent lives. 6. I do not believe closeness or species defines who deserves compassion and moral patienthood. 7. I think there are huge open questions in ethics, governance, and how to make the world good, and it is important to strive to answer these eventually. ## What to do then? So since it seems clear that some good should be done, and that I have surplus and personal reasons to do some good, what to do then? I think there exists a simpler case, and a complicated case for Effective Altruism. Let's explore both: ### Simpler case: You already know some outputs you want to achieve, or where you want to focus your aid, and you are deciding what specific intervention or organization will best achieve your desired outcome. - If you live in a 1st world country and you want to help the global south, and do not have very deep knowledge about specific interventions, it seems clearly better to help effectively than to help ineffectively. - So if your options are "donate \$30 to a Unicef program to aid a single family in the global south for an immeasurable amount" or "donate \$30 to Against Malaria Foundation to get 15 long-lasting insecticidal nets to save 0.55% of a life in expectation", I think the second clearly wins. - (Not just based on vibes but - there are measurement programs like Givewell that say that Against Malaria Foundations numbers are good.) Counterarguments: - "But what if the $30 dollar donation does something really important for the family and manages to say save an entire life there?" - Of course outcomes in the real world are not always predictable. However I think there is a strong case for probabilistic reasoning - When outcomes are uncertain we should measure the change that something good happens, and the amount of that good, and work on the expected good done. I don't have a large philosophical reason for this, there just seems to be no better model for reasoning about uncertain outputs in the real world. - Absence of evidence is evidence of absence - Unicef is a huge non-profit organization, and if they could show quantifiable numbers of their output, they most likely would. - It is suboptimal to _reward_ actors in the real world for keeping their outputs and estimations fuzzy - Therefore we should demand rigorous estimates. - Humans have a bias to disprefer known downsides - It is easier to hope and believe that the Unicef donation will do something great. - But this is not a substantive argument that it will. If you want to help with climate change it seems obvious that an effective intervention is better than a non-effective one. For more information on this subject see givewell.org, thelifeyoucansave.org, or in Finnish lahjoittaminen.fi ### Complicated case: If you do not already know what outputs you are looking for, just that you want to help somehow, then we need to get more philosphical. The classic thesis of Effective Altruism is that you should help the world, if you can afford to, and you should try to do it effectively. And you buy this thesis but you do not know what you want to help with. From an altruistic perspective, the world is filled with terrible badness. People living in dictatorships, climate change, hunger, illness, factory farming, death, war, risks of nuclear war, pandemics, and at the end (or start) of the list many Effective Altruist sources give you, even existential risk from advanced artifical intelligence. How to decide between these? 1. You need to reflect on your values. How do you value humans, compared to mammals, compared to insects. 2. You need to reflect on how to estimate outcomes in the real world. Do you accept simple expected value reasoning, such that a plan with a 1% change to save a 100 people is worth the same as a plan with 100% change to save 1 person? Do you take this to it's natural conclusion? Sometimes reasoning like this can lead to conclusions that go quite far. Even if you take a time discounting function (as defined by [economics](https://en.wikipedia.org/wiki/Time_preference)) of a few % a year to deal with uncertainty, if there are say 10^58 possible future lives ([as estimated by philosophers and cosmologists](https://nickbostrom.com/papers/astronomical-waste/)) this can still mean that the in moral worth the next few thousand years are only a blink of the eye in the scale of all of future. (And many moral philosophers think there is a case against time discounting for moral value.) (TODO: tarkista numero) ![Ridiculous longtermism numbers](/longtermism_scrooge_mcduck.jpg) Even if you don't believe that lives are exchangeable or anything like that, I still think the number is important to consider. I think a common counterargument is that "But these are real people! We cannot just do math on their lives!". But all the other lives we could aid are also real people - if we don't do any evaluation and just put our head in the sand, we are leaving some of the decisionmaking process off to random change. To me the core thesis here is not saying we should _only_ do math to define how one should help. The thesis is that if you do not do _any math_, _no quantitative reasoning_, you are leaving information on the table and that leads to suboptimal decisions. You should do the math, and then you can decide how to weigh the math and other relevant factors. ### Waryness I think people have a tendency to be wary of large answers to simple philosophical reflections. I think in some degree this is healthy - often when you have an emotional feeling like "this is lifechanging and I must change what I am doing to act on it" it could be something worthless or dangerous - like a cult or other entity trying to pull on your strings. But this is only a protective heuristic, and sometimes the real world truly is so complicated, and we truly have enough new evidence, that we need to do drastic changes. But I think if you feel the call of altruism, and the pull to answer, you should not be too hasty to put it back into the box. ### Back to the personal I personally feel like there is a cost with focusing too much on the far future. But I also feel like the average citizen of the world is way too disconnected from the future that awaits us. Emotionally, if I take a moment to reflect, I can quite easily imagine the people of the future yelling at us, telling us to acknowledge the fact that they matter. And I do not have the heart to tell them _no_. (Also, on a more rational level - opportunity costs are real costs. If humanity does "decently" by some metric, but misses out on 95% of possible future value, we have lost that 95% forever. In the real world there are no excuses.) I personally find it intuitive that the preferences of not-yet-existent or even not-going-to-exist [moral patients](https://en.wikipedia.org/wiki/Moral_patienthood), but who could be made exist, matter. This leads me to conclude that we have a clear need to consider the preferences and worth of future humans, animals, and other moral patients. The beings of the future are calling for us, and I, hearing their call, will do my best to answer # Footnotes 1. I don't know what an economical model of high foreign aid would actually yield as long term consequences. But that is also why I framed this as a feeling instead of a stabler policy position. --- ## I forked a blog codebase https://xylix.github.io/blog/blog-meta | 2024-09-24 | tags: programming > In magic we trust ## How and why I made this blog The codebase was forked from [github.com/haihala/haihala.github.io](https://github.com/haihala/haihala.github.io/) You can see the original authors cool story about making the blog at [https://haihala.github.io/blog/blog-meta](blog-meta). I have been using Ghost for my blog since ~2018, but it recently had some critical vulnerabilities and I didn't want to go through the major version upgrade process that would've been necessary to update, so here we are. The only place where I have previously used Svelte was for my CV, which I also forked. It will eventually be hosted here. (Update: Is hosted here.) I ended up spending a few hours manually copying Ghost blog posts over, but I could have probalby used a markdown export just as well. --- ## Topology and loving math https://xylix.github.io/blog/topology | 2024-04-15 | tags: math, personal > How topology helped re-ignite my love for math ## Background, my attitude toward math before 2024 For a long while, I avoided thinking too much about the mandatory math courses that my computer science degree in my university includes. I had already failed the initial "introduction to university mathematics" course during the early years of my studies, and overall after my high school experience (being an "average student" in a gifted math & compsci focused high school) in math felt quite incompetent and demotivated. Then I decided to give completing my university degree my best shot. I had often felt demotivated, for reasons including: I felt my executive function was more suited for work life, I had an easier time motivating myself through applications over pure knowledge, and completing a degree felt like an insurmountable task. But I had had a difficult time looking for work during fall 2023, and ended up concluding that maybe a fresh shot at a degree, after many years of fulltime work, would be beneficial. One big reason was to try to complete something I felt was impossible for me. Thus I enrolled on a math course. I managed to "scrape by" (often completing the excercises on the last available day, with a lot of stress and support from my partner, couldn't have done it without him) a linear algebra course. It felt insightful but also fresh. I liked being able to see the tower of knowledge that subsequent excercises built on. I liked being able to "just calculate" for many of the excercises. (Solving linear equations by hand or calculating determinants.) ## Going faster I felt empowered. Learning new math felt possible. I understood new things and also had received new tools. (And learned to read math better! To read one symbol variable names and a lot of greek alphabet sprinkled in. Something that had felt like one of the obstacles blocking me from completing my math studies many times.) So I decided to try and enroll on a difficult math course for the next period (january - march 2024), Topology IA (1/2 of a whole that introduces metric topology). The course had a non-insignificant amount of pre-knowledge I was missing, including 2/4 of the analysis courses that our university's math majors take during their first year. The course was also aimed at those math majors. It looked like a challenge. I managed to fit some easier math courses, and another challenging one into the period, and find some friends to take with me to the topology course, and my journey was ready to go. The first two weeks of lectures were quite followable. I had many an enjoyable discussion with my friends during the lectures or after them, and learned some basics. But I did not manage to complete the excercises very well. I felt I didn't know where to start with the heavily proof based excercises (basically 6/6 excercises were proofs for most of the weeks). I had known that I might start from a difficult spot, missing some of the prereqs, and went to the excercise solution sessions and tried to follow as best as I could. Also had to lighten my math load around halfway through the period, dropping Introduction to Logic (Ironic, it being a useful course for learning proofs, but I didn't feel like I was learning optimally with that course, it being very self study focused), and eventually also dropping a Linear Algebra II class. At around week 5/7 of the period the Probability 1 course I was studying in also had a difficult week, and I had to miss some topology lectures. After that I didn't manage to get my rhytm back. I was quite lost with the precise details of the newly taught, and thus I resigned to having a quite high change of failing the course. I was also lost with missing prereq info, some of which included better intuitive understandings of the following: delta-epsilon proofs, mean value theorem, non-trivial forms of triangle inequality, However not all was lost. The course exam had the possibility to bring a 3-page two-side cheatsheet, which could be written on a computer. I managed to get ahead on the probability course stuff and make some time, and determined to rehearse basically all of the topology material, and make a good cheatsheet, perhaps including all the definitions and theorems from the course material. Exam week starts. My first exam is probability 1, which should be the easier of the exams. I go there, do it, have a decently confident good feeling afterwards, if a bit tired. I rested a bit and went on to finish the topology cheatsheet. It was a painful experience of staring at mathematical notation for almost 15 hours in total, rewriting the course material in my own latex cheatsheet. But with an entire two days to go before the exam, I had managed to do it. I spent some time stressing about the exam, some staring at the cheatsheet, some watching math youtube, and in the end had a decent feeling going into the exam. I was prepared for quite a high variance when going in, but after getting the exam paper in my hands and spending maybe 30-45 mins of the allotted 4 hour timeslot getting the questions in my head properly and drafting, I managed to work on them quite well, managing to answer all 5 of the questions, if some with a couple holes. I needed 13/30 points to get a passing grade, and was more optimistic after the exam than I was beforehand. After spending some attention waiting for the results for ~two weeks, they were announced. But there was a problem. The study webpage where the results could be seen was down for mainteinance until 21 that evening. I got to watching some anime with my boyfriend and refreshed the web page the moment the clock hit 21:00. There was another problem. The scheduled mainteinance had been extended, perhaps due to technical problems. The new mainteinance end time was 21:15. And at 21:15 it was 21:30. Then 22:00. In the end I got the results maybe around 22:30 that night, after one and half hours of quite intense waiting. I had received a grade of 2/5 from the course. I was satisfied. This was not optimal understanding but it was much better than I had feared for, and it was a not-insignificant amount of understanding in university mathematics I had managed to attain. (I cannot really say I was elated, but I was relieved.) ## Now I can clearly notice my mathematical intuitions improving. It has been satisfying. I don't know if it's useful but also I don't know if it would even be good to think too precisely on if it is. Maybe sometimes one can just commit to a few steps of learning some new skills and not spend all the time trying to evaluate their usefulness. I have noticed the phenomena where sometimes grokking something in math requires multiple hours or even days or weeks of being stuck with the thing in mind. The last experience of this I had when studying algorithms courses, but often when doing real world programming I have managed to avoid being stuck through various means. I'm also glad that through proper motivation (e.g. having a use for it, making math notes and writing excercise answers) I have now learned to write math in LaTeX much better. I also suffered from 4-6 days / week headaches for a month during this period of studying math. I'm actually surprised how functional I managed to stay and how "low weight" the experience has in my head. It was helpful that normal OTC pain medication handled the issue quite well. (And the situation has now become better.) I want to learn more math. I want to understand it. I want to glance at this infinity. --- ## MathJax test https://xylix.github.io/blog/math-test | 2024-04-05 | tags: work-in-progress > Testing MathJax ```latex $(a \ne 0)$ $\vert x_1 - 1 \vert + e(0,0) < 1 \iff e(x_1,1) + \vert 0 - 0 \vert < r_2$ ``` --- ## EA Slides 2022 https://xylix.github.io/blog/perinnepaivadiat-2022 | 2022-11-19 | tags: presentation > Presentation about Effective Altruism at Matematiikkalinjan Perinnepäivät EA - perinnepäivät 2022 [![slides](https://lh3.googleusercontent.com/bNF8hCA12aAvSkxcc4Dyo06Lp4n5gTbgHefZ7Dz97sFihkUPv2V_3-2WaVuRazF2QFC7LhsOnPI3zg=w1200-h630-p)](https://docs.google.com/presentation/d/1T2tuoY1MQ2r2jAFH7AXa73spL4mJ38FE7nkInfTCL9s/edit?usp=sharing) --- ## Dnd 5e Eldritch Invocations https://xylix.github.io/blog/dnd-5e-eldritch-invocations-by-unlock-requirements | 2020-10-22 | tags: ttrpg > Eldritch Invocations listed by unlock requirement No prereqs: - Thief of Five Fates You can cast Bane once using a warlock spell slot. You can't do so again until you finish a long rest. - Armor of Shadows You can cast Mage Armor on yourself at will, without expending a spell slot or material components. - Mask of Many Faces You can cast Disguise Self at will, without expending a spell slot. - Eyes of the Rune Keeper You can read all writing. - Devil's Sight You can see normally in darkness, both magical and nonmagical, to a distance of 120 feet. - Fiendish Vigor You can cast False Life on yourself at will as a 1st-level spell, without expending a spell slot or material components. - Eldritch Sight You can cast Detect Magic at will, without expending a spell slot or material components. - Beguiling Influence You gain proficiency in the Deception and Persuasion skills. - Gaze of Two Minds You can use your action to touch a willing humanoid and perceive through its senses until the end of your next turn. As long as the creature is on the same plane of existence as you, you can use your action on subsequent turns to maintain this connection, extending the duration until the end of your next turn. While perceiving through the other creature's senses, you benefit from any special senses possessed by that creature, and you are blinded and deafened to your own surroundings. - Beast Speech You can cast Speak with Animals at will, without expending a spell slot. Prereq 5th level - Gift of the Depths You can breathe underwater, and you gain a swimming speed equal to your walking speed. You can also cast Water Breathing without expending a spell slot. You regain the ability to do so when you finish a long rest. - Mire the Mind You can cast Slow once using a warlock spell slot. You can't do so again until you finish a long rest. - Misty Visions You can cast Silent Image at will, without expending a spell slot or material components. - One with Shadows When you are in an area of dim light or darkness, you can use your action to become invisible until you move or take an action or a reaction. - Sign of Ill Omen You can cast Bestow Curse once using a warlock spell slot. You can't do so again until you finish a long rest. - Tomb of Levistus As a reaction when you take damage, you can entomb yourself in ice, which melts away at the end of your next turn. You gain 10 temporary hit points per warlock level, which take as much of the triggering damage as possible. Immediately after you take the damage, you gain vulnerability to fire damage, your speed is reduced to 0, and you are incapacitated. These effects, including any remaining temporary hit points, all end when the ice melts. Once you use this invocation, you can’t use it again until you finish a short or long rest. - Cloak of Flies As a bonus action, you can surround yourself with a magical aura that looks like buzzing flies. The aura extends 5 feet from you in every direction, but not through total cover. It lasts until you're incapacitated or you dismiss it as a bonus action. The aura grants you advantage on Charisma (Intimidation) checks but disadvantage on all other Charisma checks. Any other creature that starts its turn in the aura takes poison damage equal to your Charisma modifier (minimum of 0 damage). Once you use this invocation, you can’t use it again until you finish a short or long rest. - Maddening Hex Prerequisite: 5th level, Hex spell or a warlock feature that curses As a bonus action, you cause a psychic disturbance around the target cursed by your Hex spell or by a warlock feature of yours, such as Hexblade’s Curse and Sign of Ill Omen. When you do so, you deal psychic damage to the cursed target and each creature of your choice within 5 feet of it. The psychic damage equals your Charisma modifier (minimum of 1 damage). To use this invocation, you must be able to see the cursed target, and it must be within 30 feet of you. Prereq 7th level: - Ghostly Gaze As an action, you gain the ability to see through solid objects to a range of 30 feet. Within that range, you have darkvision if you don’t already have it. This special sight lasts for 1 minute or until your concentration ends (as if you were concentrating on a spell). During that time, you perceive objects as ghostly, transparent images. Once you use this invocation, you can’t use it again until you finish a short or long rest. - Bewitching Whispers You can cast Compulsion once using a warlock spell slot. You can't do so again until you finish a long rest. - Relentless Hex Prereq: Hex spell or a warlock feature that curses Your curse creates a temporary bond between you and your target. As a bonus action, you can magically teleport up to 30 feet to an unoccupied space you can see within 5 feet of the target cursed by your Hex spell or by a warlock feature of yours, such as Hexblade’s Curse and Sign of Ill Omen. To teleport in this way, you must be able to see the cursed target. - Sculptor of Flesh You can cast Polymorph once using a warlock spell slot. You can't do so again until you finish a long rest. - Trickster's Escape You can cast Freedom of Movement once on yourself without expending a spell slot. You regain the ability to do so when you finish a long rest. - Dreadful Word Prerequisite: 7th level You can cast Confusion once using a warlock spell slot. You can't do so again until you finish a long rest. Prereq 9 lvl: - Otherworldly Leap You can cast Jump at will, without expending a spell slot. - Minions of Chaos You can cast Conjure Elemental once using a warlock spell slot. You can't do so again until you finish a long rest. - Whispers of the Grave You can cast Speak with Dead at will, without expending a spell slot. - Ascendant Step You can cast Levitate on yourself at will, without expending a spell slot or material components. Prereq 15 lvl: - Master of Myriad Forms You can cast Alter Self at will, without expending a spell slot. - Witch Sight You can see the true form of any shapechanger or creature concealed by illusion or transmutation magic while the creature is within 30 feet of you and within line of sight. - Visions of Distant Realms You can cast Arcane Eye at will, without expending a spell slot. - Shroud of Shadow You can cast Invisibility at will, without expending a spell slot. - Chains of Carceri Prerequisite: 15th level, Pact of the Chain feature You can cast Hold Monster at will – targeting a celestial, fiend, or elemental – without expending a spell slot or material components. You must finish a long rest before you can use this invocation on the same creature again. Prerequisite: Eldritch Blast cantrip - Eldritch Spear Prerequisite: Eldritch Blast cantrip When you cast Eldritch Blast, its range is 300 feet. - Grasp of Hadar Prerequisite: Eldritch Blast cantrip Once on each of your turns when you hit a creature with your Eldritch Blast, you can move that creature in a straight line 10 feet closer to yourself. - Repelling Blast When you hit a creature with Eldritch Blast, you can push the creature up to 10 feet away from you in a straight line. - Agonizing Blast When you cast Eldritch Blast, add your Charisma modifier to the damage it deals on a hit. - Lance of Lethargy Prerequisite: Eldritch Blast cantrip Once on each of your turns when you hit a creature with your Eldritch Blast, you can reduce that creature’s speed by 10 feet until the end of your next turn. Prerequisite: Pact of the Tome feature - Book of Ancient Secrets You can now inscribe magical rituals in your Book of Shadows. Choose two 1st-level spells that have the ritual tag from any class's spell list; these rituals needn’t be from the same spell list. The spells appear in the book and don't count against the number of spells you know. With your Book of Shadows in hand, you can cast the chosen spells as rituals. You can't cast the spells except as rituals, unless you've learned them by some other means. You can also cast a warlock spell you know as a ritual if it has the ritual tag. On your adventures, you can add other ritual spells to your Book of Shadows. When you find such a spell, you can add it to the book if the spell's level is equal to or less than half your warlock level (rounded up) and if you can spare the time to transcribe the spell. For each level of the spell, the transcription process takes 2 hours and costs 50 gp for the rare inks needed to inscribe it. - Aspect of the Moon You no longer need to sleep and can’t be forced to sleep by any means. To gain the benefits of a long rest, you can spend all 8 hours doing light activity, such as reading your Book of Shadows and keeping watch. - Eldritch Mind (UA) Prerequisite: Pact of the Tome feature You have advantage on Constitution saving throws that you make to maintain your concentration on a spell. - Far Scribe (UA) Prerequisite: 5th level, Pact of the Tome feature A new page appears in your Book of Shadows. With your permission, a creature can use its action to write its name on that page, which can contain a number of names equal to your Charisma modifier (minimum of 1). You can cast the sending spell, targeting a creature whose name is on the page, without using a spell slot and without using material components. To do so, you must write the message on the page. The target hears the message in their mind, and if the target replies, their message appears on the page, rather than in your mind. The writing disappears after 1 minute. As an action, you can magically erase a name on the page by touching the name on it. - Gift of the Protectors (UA) Prerequisite: 9th level, Pact of the Tome feature A new page appears in your Book of Shadows. With your permission, a creature can use its action to write its name on that page, which can contain a number of names equal to your Charisma modifier (minimum of 1). When any creature whose name is on the page is reduced to 0 hit points but not killed outright, the creature magically drops to 1 hit point instead. Once this magic is triggered, no creature can benefit from it until you finish a long rest. As an action, you can magically erase a name on the page by touching the name on it. Prereq pact blade: - Improved Pact Weapon Prerequisite: Pact of the Blade feature You can use any weapon you summon with your Pact of the Blade feature as a spellcasting focus for your warlock spells. In addition, the weapon gains a +1 bonus to its attack and damage rolls, unless it is a magic weapon that already has a bonus to those rolls. Finally, the weapon you conjure can be a shortbow, longbow, light crossbow, or heavy crossbow. - Eldritch Armor (UA) Prerequisite: Pact of the Blade feature As an action, you can touch a suit of armor that isn’t being worn or carried by anyone and instantly don it, provided you aren’t wearing armor already. You are proficient with this suit of armor until it’s removed. - Arcane Gunslinger (UA:MM) You can create a pact weapon that is a sidearm or long arm, and you can transform a magical sidearm or long arm into your pact weapon. - Eldritch Smite Prerequisite: 5th level, Pact of the Blade feature Once per turn when you hit a creature with your pact weapon, you can expend a warlock spell slot to deal an extra 1d8 force damage to the target, plus another 1d8 per level of the spell slot, and you can knock the target prone if it is Huge or smaller. - Thirsting Blade Prerequisite: 5th level, Pact of the Blade feature You can attack with your pact weapon twice, instead of once, whenever you take the Attack action on your turn. - Superior Pact Weapon (UA) Prerequisite: 9th level, Pact of the Blade feature You can use any weapon you summon with your Pact of the Blade feature as a spellcasting focus for your warlock spells. In addition, the weapon counts as a magic weapon with a +2 bonus to its attack and damage rolls, unless it is already a magic weapon that you transformed into your pact weapon. - Lifedrinker Prerequisite: 12th level, Pact of the Blade feature When you hit a creature with your pact weapon, the creature takes extra necrotic damage equal to your Charisma modifier (minimum 1). - Ultimate Pact Weapon (UA) Prerequisite: 15th level, Pact of the Blade feature You can use any weapon you summon with your Pact of the Blade feature as a spellcasting focus for your warlock spells. In addition, the weapon counts as a magic weapon with a +3 bonus to its attack and damage rolls, unless it is already a magic weapon that you transformed into your pact weapon. Prereq pact chain: - Voice of the Chain Master You can communicate telepathically with your familiar and perceive through your familiar's senses as long as you are on the same plane of existence. Additionally, while perceiving through your familiar's senses, you can also speak through your familiar in your own voice, even if your familiar is normally incapable of speech. - Gift of the Ever-Living Ones Whenever you regain hit points while your familiar is within 100 feet of you, treat any dice rolled to determine the hit points you regain as having rolled their maximum value for you. - Chain Master’s Fury (UA) Prerequisite: 9th level, Pact of the Chain feature As a bonus action, you can command your familiar to make one attack. - Investment of the Chain Master (UA) Prerequisite: Pact of the Chain feature When you cast find familiar, you infuse the summoned familiar with a measure of your eldritch power, granting the creature the following benefits: The familiar gains either a flying speed or a swimming speed (your choice) of 40 feet. The familiar no longer needs to breathe. The familiar’s weapon attacks are considered magical for the purpose of overcoming immunity and resistance to nonmagical attacks. If the familiar forces a creature to make a saving throw, it uses your spell save DC. Prereq pact talisman: - Protection of the Talisman (UA) Prerequisite: 9th level, Pact of the Talisman feature When the wearer of your talisman makes a saving throw in which they lack proficiency, they can add a d4 to the roll. - Rebuke of the Talisman (UA) Prerequisite: Pact of the Talisman feature When the wearer of your talisman is hit by an attacker you can see within 30 feet of you, you can use your reaction to deal psychic damage to the attacker equal to your Charisma modifier (minimum of 1 damage) and push it up to 10 feet away from the talisman’s wearer. - Bond of the Talisman (UA) Prerequisite: 12th level, Pact of the Talisman feature --- ## Learning from Haskell https://xylix.github.io/blog/learning-from-haskell | 2020-08-19 | tags: programming > Learning to program, from Haskell What Haskell (specifically the basics in form of [https://haskell.mooc.fi/](https://haskell.mooc.fi/) ) taught me. (Spoiler: it taught me a lot of blind spots in my knowledge.) I used to think that I can learn functional programming well enough without ever touching Haskell or any other purely pure language. I also used to think that isolation of side effects on type level would be a hassle. Now I think I was incorrect. Something I was right about before I touched Haskell was that I did understand `map` and `filter`. A predicate is quite a simple concept. A functor is somewhat simple ([http://www.haskellforall.com/2012/09/the-functor-design-pattern.html](http://www.haskellforall.com/2012/09/the-functor-design-pattern.html) ). "Lazy lists sound just like pythons generators with different consumption sugar" was something I said aloud last year, and I still don't think that's completely wrong in many of the common cases of returning lazy linked lists in functional programming. "Academic terminology about programming language concepts just makes things confusing" was also something I used to think. This I found to be wrong in many ways. Academic terminology allows good (but never perfect) consistency in documentation and explaining different terms. It also enables translating terminology nicely between programming languages / libraries / concepts. Most `fantasyland` JavaScript and TypeScript libraries use the same terminology as Haskell does, which makes the concepts nicely mappable in a readers head. I was very wrong about understanding `reduce` . Through forcing to think problems in ways of recursion (raw pattern matching base case recursion, recursion with helper methods like fold(l|r)), I had to learn new ways of thinking about iteration. Before I thought this would be useless, "why would I want to solve problems that intuitively map to for loops with recursion", but thinking in `fold`s and `scan`s (which I haven't yet used once) has the advantage of generalizing well. Helper functions for these abstract recursive processing functions can be generalized over other problems. So I did have to bend and accept that Haskell can, did and will teach me more about functional programming paradigms. What about type paradigms? Since I just completed about 40 hours of work in a 101 level Haskell course I haven't yet had time to delve into GHC extensions or other more interesting type features. The basic Type Class and Instance combination was already familiar to me from programming in Rust, altough Haskell's one is a bit more permissive and allows some orphan instances. Haskell's type inference has been stellar, altough the type error messages could often be more helpful (again Rust has stellar inference AND great error messages). --- ## Programming tools https://xylix.github.io/blog/programming-tools | 2020-03-01 | tags: programming > Thoughts on programming tools Observations about which areas I think about in my programming projects: Am passionate & think a lot about: - testing, strong opinions about [python: unittest vs pytest, js: everything, java: everything]. - build tools [java: gradle vs maven, js: npm & yarn vs pnpm] - syntax - explicit vs implicit  (Tornadofx is a bad example of implicitly hiding implementation details when trying to make the library nicer to use. I guess it does succeed in simple use cases, but it makes understanding harder.) I can (sometimes accidentally) spend weekend evenings reading about solutions and comparing stuff and reading source codes of interesting solutions and new approaches. Am disinterested and rarely think about: - Orm's vs text db querys, I really couldn't care much less, as long as the solution makes sense on some level - algorithms, I have a really hard time if I have to care about an algorithm library's internal details. With these it feels like a chore to spend more time than I have to at looking in these. An interesting conclusion is that at least for people like me, it would probably be a bad idea to assemble a programming team of similar persons. Having a wider group of sub-area passion compositions would probably lead to better results than having similar compositions. --- ## Review: The AI Does Not Hate You https://xylix.github.io/blog/ai-does-not-hate-you | 2019-07-09 | tags: review, book > (Tom Chivers, 2019) _Superintelligence, rationality and the race to save the world_ It is a very slim and general overview of the current state of General Artificial Intelligence development and expert evaluations on when it will happen (seemingly between 2030-2100 with over 95% probability). However, the issue of "why would a superintelligent artificial intelligence want to do seemingly stupid things" was answered very well and comprehensively. Chapter 11 is a good example of this (titled "If I stop caring about chess, that won't help me win any chess games, now will it?). It also is a perfunctory but good overview on the Rationalists and Effective Altruists. The book presents multiple viewpoints supporting the fact that modern Rationalism (the lesswrong kind) makes people better at changing the world / predicting things. Also draws a sensible connection between practice of rationality and "superforecasting". And it is a compact and accurate overview of modern applied utilitiarianism and Effective Altruism. Also the references (to Bostrom and Singer specifically) lay up groundwork for readers wanting to dive deeper into the issues. Personally I'd have emphasized "opportunity cost is not a real cost" as the number one problem in modern day politics. But this is my pet peeve so I'm a bit biased here. Presentation of the long-term vs. short/middle-term "effectively altruistic" charieties is also done well. Altough I personally find future lives almost if not as important as current lives, the fact that speculative research is speculative is still very true. Bayes' Theorem gets presented with a good non-mathy example (part three, specifically chapter 19). Uses everyday-life related examples well, like the doctor - cancer test - inaccuracy example (pages 122-123). The viewpoint of not being a Ratinalist but being a rationalist symphatizer allows the author powerful standing ground when he defends the "weird parts" of the rationalist community. And I think he does a good job here. Was this necessary for the book? I don't know, but if it breaks mainstream I think it serves an important purpose. Compared to all other non-fiction, topic independently, I couldn't call this book a 5 star work. However it takes an establishedly hard topic, and tackles it coherently. It's the best introduction to the Rationalist and Effective Altruist communities I have yet seen. And also a good introduction to modern applied utilitarianism and the concept of existential risk. --- ## Realifying https://xylix.github.io/blog/realifying | 2019-06-22 | tags: confusing, work-in-progress > Confusing form thoughts about creativity [Epistemic status: A useful framework for understanding my own creativity] Disclaimer: much of the terminology here has been lent from - Venkatesh Rao (especially http://www.tempobook.com/2011/08/17/daemons-and-the-mindful-learning-curve/) - Ziz (https://sinceriously.fyi/being-real-or-fake/, https://sinceriously.fyi/false-faces/) - Elizabeth Gilbert. (https://www.ted.com/talks/elizabeth_gilbert_your_elusive_creative_genius) The concepts aren't mine, but the presentation is. ### Intro You have a mask. You also have a daemon. The mask consists of mostly _structure_ and some core. (Social and habitual patterns) The daemon consists of mostly _core_ and some structure. (part of your "inner self". pretty static) Often manifests as "internal rebellion". `f(x) > x` is the _freedomful creative output_ inequation. Visualized at [ribbonfarm](https://206hwf3fj4w52u3br03fi242-wpengine.netdna-ssl.com/wp-content/uploads/2015/02/Picture1-1024x457.png). ### What is a hit To actually see if your output contains _freedom_ you need to look. Open your eyes and see. Unavoidably you will observe if `f(x) > x` gets fulfilled. Also unavoidably, looking will make you see how useless social structure is in the context of real quality. This leads to a crossroads; you’ll choose between becoming \* _blind_ (to quality, either by abandoning quality as a principle or by inventing a _self-apogoletic_ view of quality) - A rebel (abandoning the belief that the group knows where we are going, realizing you need to make your own map and find your own territory ## Missing (`f(x) < x`) When you use just the _*mask*_ to traverse idea-space, you usually end up lost. In the wrong destination, or through the wrong path. You miss. Usually when missing you end up destroying territory or map. You lock future options from yourself or lose pointers to useful existing information. Missing can also manifest as creative self-harm. Destruction of quality input by outputting garbage. _*Medium writers writing self-actualization advice for other similar writers*_. Your creations aren’t useful, they just fulfil a memetic circlejerk. And you amplify your own belief in the circlejerk, creating a viscious cycle. When you use just the _*daemon*_ to traverse idea space, you [_move wrongly_](https://www.lesswrong.com/posts/aHaqgTNnFzD7NGLMx/reason-as-memetic-immune-disorder). Travelling as a daemonic explorer in a _*territory*_ designed for non-daemonic entities, with non-daemonic maps puts you at risk of applying your reasoning in hazardous places. ## Hitting (`f(x) > x`) When you properly contract or synthesize mask & daemon, you hit. You can generate. This means you output an amount of quality that’s greater than what you took in. This is _*real creativity*_. ## Escape velocity If you start using _*real quality*_ to generate and reform your own belief system it becomes possible to reach _*escape velocity*_. You can escape the binding social realities. Achieve acceleration that'll lead to increasing amounts of freedom in the long run. You'll receive amplified _*mana*_ (strength of will/personality) and _*spark*_ (creativity, ability to go "against the flow"). However, it usually does not make you _*happier*_. It forces you to see false happiness as the false band-aid it is. ## Feetnotes Do you _*need*_ a mask? You do, to dent society/humanity. You don't need a mask to dent material conditions. Abandoning the mask makes you mute and inperceivable to masked inviduals. It lets you avoid distractions, but also halts access to social resources. --- ## Disorderly reading https://xylix.github.io/blog/reading-my-way | 2019-06-11 | tags: confusing > Disorderly reading This weekend I've read futuristic society philosophy, the Unabomber manifesto, game engine architecture and a variety of posts shallowly related to "fulfilment". I proudly proclaim I have no idea how to group these into a coherent whole. But that's all right. I'll probably group some of these into their own wholes at some point; after I synthesise something in the future that leads to pointing into these bits of information. After reading Venkatesh Rao's post on orderly vs disorderly reading I think I've finally figured out why I find Ribbonfarm so attractive. There is no coherent whole or agenda there. It's just text that the writer who wrote it finds interesting / thought-provoking. This makes it easier to use it to provoke my own thinking. And harder to compress. I find information that's harder to compress feels more contentful afterwards. I can't just store a post in my brain under a pointer, because all the posts I read that grazed the topic also talked about multiple other things from other perspectives. But I can (and do) make mental notes saying "in the future, when reading about future, try to synthesize the thoughts with the existing information on the topic". I'm at my most passionate when I'm distracted with something useful in the grand picture of things, but which's usefulness in the small picture can't be comprehended (for example: when I'm "improving my thinking" by consuming any and all stimulating thoughts I come across). I bet this is like the feeling of sailing into the unknown. The only thing you can be sure about is that it's going to be an adventure. At the worst a boring adventure, but an adventure nonetheless. And at it's best, something that forever changes how you see the world. A new find. A mental subversion. Change. --- ## Tietojenkäsittelytieteen tutkimus Suomessa https://xylix.github.io/blog/kapistelytutkimus-suomessa | 2019-06-09 | tags: research > Yliopistojen tietojenkäsittelytieteen tutkimusryhmät ja -alueet 2019 Tutkimuslaitosten ja -osastojen nettisivuilla 09.06.2019 löytyneestä tiedosta koostettu lista tutkimusalueista, tutkimusryhmistä ja julkaisulistoista Suomessa. Jos lähteessä tieto oli muotoiltu toimivaksi listaksi, lähteen muotoilu säilytetty. ## A. Tietojenkäsittelytieteen tutkimus ### Helsingin Yliopisto [Tietojenkäsittelytieteen osasto](https://www.helsinki.fi/fi/tietojenkasittelytiede) Tutkimusalueet: [Algoritmit](https://www.helsinki.fi/fi/tietojenkasittelytiede/tutkimus/algoritmit): - Al­go­rith­mic Lear­ning Theo­ry - Al­go­rithms for Bio­lo­gical Sequencing Data - Bioin­for­ma­tics and Evo­lu­tion - Com­bi­na­to­rial Pat­tern Matc­hing - Compres­sed Data Struc­tu­res - Con­straint Rea­so­ning and Op­ti­miza­tion - Data Ana­ly­tics and Cy­ber Secu­ri­ty - Gen­ome-sca­le al­go­rith­mics - Prac­tical Al­go­rithms and Data Struc­tu­res on Strings - Sums of Pro­ducts Re­search Group - Al­go­rith­mic Data Science - Data Sci­ence and Evol­u­tion - Explo­ra­to­ry Data Ana­ly­sis [Tekoäly](https://www.helsinki.fi/fi/tietojenkasittelytiede/tutkimus/tekoaly): - Al­go­rith­mic Data Science - Complex Sys­tems Com­pu­ta­tion (CoSCo) - Com­pu­ta­tio­nal Cre­ativ­ity and Data Min­ing - Com­pu­ta­tio­nal Lin­guis­tics - Data Sci­ence and Evol­u­tion - Data Science for the Mas­ses - Explo­ra­to­ry Data Ana­ly­sis - Explo­ra­to­ry Search and Per­so­na­li­sa­tion (ESP) - In­for­ma­tion, Complexi­ty and Lear­ning (ICL) - Mul­ti-source Pro­ba­bi­lis­tic In­fe­rence (MUPI) - Neu­roin­for­ma­tics - Pro­ba­bi­lis­tic In­fe­rence and Com­pu­ta­tio­nal Bio­lo­gy - Bioin­for­ma­tics and Evo­lu­tion - Con­straint Rea­so­ning and Op­ti­miza­tion - Spa­tio­tem­po­ral Data Ana­ly­sis - Sums of Pro­ducts Re­search Group [Tietoverkot](https://www.helsinki.fi/fi/tietojenkasittelytiede/tutkimus/tietoverkot): - Col­la­bo­ra­ti­ve and In­te­ro­pe­rable Com­pu­ting (Cinco) - Col­la­bo­ra­ti­ve networ­king - Con­tent-cent­ric struc­tu­res and networ­king (COSN) - Secu­re Sys­tems - Spa­tio­tem­po­ral Data Ana­ly­sis - Sys­tems and Me­dia - Wi­re­less In­ter­net - Ubiqui­tous In­te­rac­tion (UIx) - Bat­te­ry­Sen­se [Ohjelmistot](https://www.helsinki.fi/fi/tietojenkasittelytiede/tutkimus/ohjelmistot): - Em­pi­rical Softwa­re En­gi­nee­ring (ESE), Prof. Tom­mi Mik­ko­nen - Em­pi­rical Softwa­re En­gi­nee­ring (ESE), Prof. Tomi Män­nis­tö - RAGE - Agi­le Educa­tion Re­search - Ubiqui­tous In­te­rac­tion (UIx) - Unified Database Management Systems research group [Julkaisut](https://www.helsinki.fi/fi/tietojenkasittelytiede/uusimmat-julkaisut) ### Itä-suomen yliopisto [Tietojenkäsittelytieteen laitos](https://www.uef.fi/web/cs/cs) Tutkimusalueet: - [Laskennallinen älykkyys](http://www.uef.fi/web/ci) - [Laskennallinen puhe](https://www.uef.fi/fi/web/speech/home) - [Spektrinen väritutkimus](http://www.uef.fi/web/spectral) - [Koneoppiminen](http://www.uef.fi/web/machine-learning) - [Datatiede](http://www.uef.fi/en/web/datascience/home) - [Tilastotieteen tutkimus ja opetus](http://www.uef.fi/fi/web/stat/home) - [Opetusteknologia ](http://www.uef.fi/web/edtech) - [Vuorovaikutteiset teknologiat ](http://www.uef.fi/web/int) [Julkaisut](https://www.uef.fi/web/cs/julkaisut) ### Tampere Nettisivut rikki .\_. ### Turku [Tulevaisuuden teknologian laitos, tietojenkäsittelytiede](https://tech.utu.fi/fi/computer-science/) Tutkimusalueet: - Classification and regression methods, - Clustering methods, - Combinatorial algorithms and applications, - Cross-validation methods, - Data compression, - Feature selection methods for high-dimensional data, - Industrial algorithms, - Information retrieval, - Information theoretic methods, - Multi-task and transfer learning, - Preference learning and ranking, - Probabilistic Bayesian methods, - String algorithms, - Tensor product kernels for pairwise learning Julkaisut: Tulevaisuuden teknologian laitos: https://research.utu.fi/converis/portal/Organisation/1226211 Tietojenkäsittelytiede: https://tech.utu.fi/fi/computer-science/ ## B. Tietotekniikan tutkimus ### Aalto Tutkimusalueet: - Applications of Machine Learning Group - Combinatorics of Efficient Computations - Complex Systems - Computational Logic - Computational Systems Biology Research group - Content-Based Image and Information Retrieval Group - CS defence SCI computer science - Data Mining - Digital Content Communities - D[istributed and pervasive systems](https://www.aalto.fi/en/department-of-computer-science/distributed-and-pervasive-systems) - Distributed Algorithms Research group - Distributed Systems Group - Game Research - Kernel Methods, Pattern Analysis and Computational Metabolomics (KEPACO) - LeTech - Learning + Technology - Natural Computation Research group - PREAGO Research Group - Probabilistic Machine Learning Group - Secure Systems Research Group - Semantic Computing Research Group (SeCo) - String Algorithms Julkaisut: [Tietotekniikka](https://research.aalto.fi/en/publications/search.html?search=&uri=&lastName=&organisationName=Department+of+Computer+Science&organisations=37144&type=+&language=+&publicationYearsFrom=&publicationYearsTo=&documents=+) ### Oulu [_Tietotekniikka_](https://www.oulu.fi/tietotekniikka) Tutkimusalueet: - Älykäs informaationkäsittely: ihmisen biosignaalien analysointi, tiedonlouhinta, hahmontunnistus, koneoppiminen - Konenäkötekniikat: konenäkömenetelmät, käyttäjäkeskeinen informaationkäsittely, robottinäkö - Tietoturva: Tietoturvallinen ohjelmointi [OUSPG](https://www.ee.oulu.fi/research/ouspg/), digitaalinen vesileimaus, biometrinen tunnistus - Jokapaikan Internet: mobiili laskenta, palvelut, ihmisen ja  laitteiden välinen vuorovaikutus, kaupunkitietotekniikka,  3D-virtuaalisuus [Julkaisut](https://www.oulu.fi/tietotekniikka/julkaisut) ## C. Erilainen Tietotekniikka ### Jyväskylä [Informaatioteknologian tiedekunta](https://www.jyu.fi/it/fi/etusivu) Tutkimusalueet: Computational Sciences | Laskennalliset tieteet - [Computational Methodology](https://www.jyu.fi/it/en/research/research-areas/computational-sciences/computational-methodology) - [Dynamical Systems and Technological Development](https://www.jyu.fi/it/en/research/research-areas/computational-sciences/dynamical-systems-and-technological-development) - [Signal and Image Processing](https://www.jyu.fi/it/en/research/research-areas/computational-sciences/signal-and-image-processing) - [Optimization and Applications](https://www.jyu.fi/it/en/research/research-areas/computational-sciences/optimization-and-applications) - [Cognitive Computing and Collective Intelligence](https://www.jyu.fi/it/en/research/research-areas/computational-sciences/cognitive-computing-and-collective-intelligence) Software and Telecommunication Technology | Ohjelmistotekniikka ja tietoliikenne - [Programming Languages](https://www.jyu.fi/it/en/research/research-areas/software-and-telecommunication-technology/programming-languages-1) - [Network Management](https://www.jyu.fi/it/en/research/research-areas/software-and-telecommunication-technology/network-management) - [Signal Processing and Wireless Communications](https://www.jyu.fi/it/en/research/research-areas/software-and-telecommunication-technology/signal-processing) - [Social Media Analysis (SOMEA)](https://www.jyu.fi/it/en/research/research-areas/software-and-telecommunication-technology/somea) Information Systems | Tietojärjestelmätiede - [Global Information Systems (GIS)](https://www.jyu.fi/it/en/research/research-areas/information-systems/gis) - [Software Business](https://www.jyu.fi/it/en/research/research-areas/information-systems/software-business) - [Business and Information Society Research Team (BIST)](https://www.jyu.fi/it/en/research/research-areas/information-systems/bist) - [Value Creation for Cyber-Physical Systems and Services (CPSS)](https://www.jyu.fi/it/en/research/research-areas/information-systems/cpss) Cognitive Science and Educational Technology | Kognitiotiede ja koulutusteknologia - [Human-Technology Interaction (Cognitive Science)](https://www.jyu.fi/it/en/research/research-areas/cognitive-science-and-educational-technology/hti) - [Computing Education Research](https://www.jyu.fi/it/en/research/research-areas/cognitive-science-and-educational-technology/cer) - [Innovative Learning Environments](https://www.jyu.fi/it/en/research/research-areas/cognitive-science-and-educational-technology/ile) Cyber Security | Kyberturvallisuus - [Cyber Security and Networking](https://www.jyu.fi/it/en/research/research-areas/cyber-security/cyper) - [Information Security Management (ISM)](https://www.jyu.fi/it/en/research/research-areas/cyber-security/ism) - [Cyber Defence](https://www.jyu.fi/it/en/research/research-areas/cyber-security/cyper-defence) - [Critical infrastructure protection](https://www.jyu.fi/it/en/research/research-areas/cyber-security/critical-infrastructure-protection) [Julkaisut](https://www.jyu.fi/it/fi/tutkimus/julkaisut/julkaisut) --- ## Quotes: Venkatesh Rao on Freedom https://xylix.github.io/blog/remarkabilities-ribbonfarm-2013-2014-venkatesh-rao-et | 2019-06-09 | tags: quotes > Quotes from varying texts from ribbonfarm.com 2013-2015 Interesting quotes from ## I. [Freedom](https://www.ribbonfarm.com/2013/08/08/on-freedomspotting/) Freedom is a leaky, subsuming process. An inner process of compounding and increasing dimensionality that manifests externally must eventually “take over your life” externally as well. No part of your life, internal or external, can be walled off from the workings of a freedom transformation. The driver of this subsuming leakage is the fourth feature of the freedom process, the feeding-on-noise. We all like freedom where we are able to handle it, but prefer captivity where we are not yet ready to handle it (or where we think we might never be ready).  So we compartmentalize both internally and externally — create barriers that separate regimes of being with different “noise” levels. (Work vs. Hobbies. Balance.) Left and Right collectivists apply too much wishful thinking about collective freedom magically “emerging” out of isolated individual freedoms. Only freedom can spot freedom. Humans are much better at detecting similarities between patterns than identifying patterns in isolation.  The main reference pattern humans use in spotting freedom is themselves. So to spot freedom, you must maintain your own freedom.  Your own must be grounded in isolation, not circularity. The second rule of thumb implies that recognition of freedom is usually a mutual matter involving a notion of polarity. Two free individuals recognize each other as fundamentally more aligned than opposed (kindred spirits) or fundamentally more opposed than aligned (evil twins). In extremely polarized cases, you get soul-mate and nemesis effects. By contrast, the free react to the non-free by experiencing a stab of loneliness: the recognition of the fact that the other is not likely to ever recognize you. ## II. [the View](https://www.ribbonfarm.com/2014/04/16/a-life-with-a-view/) It is no accident that in the best stories, yearning is triggered by poignant encounters with strangers. To be seen is to be made sense of from a perspective other than one’s own. A perspective that rings unfamiliar but true. A perspective that makes your own estimate of your life seem, for a moment, alien and somewhat repulsive. It is a moment of unexpected and unsettling vulnerability. The more complete and settled your sense of your own life, the more vulnerable you are during such moments, and the more deeply the seed of restlessness is planted. Even in the safest-seeming encounters, there is a stab of fear mingled with relief: fear at being exposed for who you are, relief at finding connection. Whether the sense of connectedness prevails or the fear, the moment is fleeting. Defenses return, but not before restlessness — and fear, uncertainty and doubt along with it — sneaks in. Yearning is a case of the world sneaking inside the tempo of your life. The first time this happens is the first time you realize that home is about perspective rather than situation. And you can find game-breaks online, but only if you make a real home there, so you can be seen. _To seek only to see through the Internet is to experience only half of it, as a tourist._ Offline, we understand the arrival fallacy as unironic belief in a scripted path of progress towards the a good life. To be a sophisticate today is to laugh at the notion that life begins when one settles down by progressively checking off a set of boxes: graduation, car, marriage, mortgage, kids, making partner at the law firm. To arrive is to complete the checklist. The urge to create a new tradition, and arrive with one’s tribe at a new promised land, is as much a case of the arrival fallacy as the urge to reaffirm an existing tradition with one’s life. New traditionalists are still traditionalists. The Internet is the opposite of Hotel California. You can leave anytime you like, but you can never arrive. All you can do is allow yourself to be swept along by a stream of shifting perspectives, watching the world evolve in a kaleidoscopic blur, and experiencing yourself as part of that evolving blur. Nobody said the life with the most truest view had to be coherent as well. ## III. [Escaping the Rut](https://www.ribbonfarm.com/2014/11/05/dont-surround-yourself-with-smarter-people/)(s) I never thought I’d be making a living writing. During my sleepless years, I was never on guard against writing. By the time I realized what was happening, it was too late. I was already halfway decent at it. It comes as news to most people that they can get very skilled at playing games without being aware of it. A skill is something we normally think of as requiring a great deal of careful, deliberate practice. Those kinds of games are in fact the minority. The most common kind of finite game is the kind you fall into without noticing. This is also why philosopher’s insomnia does not work. There is no general way to be incompetent at every finite game, just like there is no general vaccine for all infectious diseases. Some  incompetencies you are born with. Other things you have to learn to suck at. We can define what it means for someone to be differently free from you. They are people who are playing just a slightly different game than you are. That difference makes them a reliable sources of non sequiturs in your life. The partial, imperfect overlapping of two finite game freedom-to-win fields of view can accidentally trigger a freedom-to-continue-playing moment for one party. This, I think, is the logic behind Wiio’s Law: communication always fails, except by accident. And that’s the reason it’s worth surrounding yourself with differently-free people: to use the law of large numbers to turn such accidents of communication into a certainty of awakening from any finite game you might be asleep in. Once you can do that, it takes no courage at all to fall asleep. ## IV. [Leadering](https://www.ribbonfarm.com/2015/03/12/the-art-of-agile-leadership/) Leadering is pervasive in nature, and since most people have no idea how evolution works, they tend to assume it must therefore serve some hidden useful function. It mostly does not. Most of the time, leadering is  neither adaptive nor maladaptive, but superfluous. It is part of the tolerable burden of non-functional behavior, subsidized by functional behavior, that we carry around as a species. In other words, leadering is the behavioral analog of junk DNA. Sound and fury signifying nothing, which only exists because it takes an order of magnitude more work to eliminate than to tolerate. This is a corollary to Alberto Brandolini’s bullshit asymmetry principle: it takes an order of magnitude more effort to refute bullshit than to create it. During times of chaotic change, however, leadering goes from being tolerably irrelevant to being actively harmful and FUD-creating. This is because so much attention is focused on the showy leadering that everybody involved misses the opportunity to do the few minutes of actual leading that is necessary during such change. To understand human leadering and its modern, somewhat less unuseless form, agile leadering, it is useful to understand it in a broader context, with reference to leadering in other species. ## V. [Schlep & Sex](https://www.ribbonfarm.com/2013/07/10/you-are-not-an-artisan/) Schlep Work and Sexy Work Worker archetypes seem to fall into two categories in every era. The dull-dirty-dangerous category and the (potentially) sexy-lucrative-powerful category. Let’s simplify the labels into schlep work and sexy work. Sexy work, such as being a bard, is work that: humans enjoy, catalyzes flow, can be valued as status, is good material for social identity formation When you actually poke at what people think of as creative, they don’t really mean creative. They mean sexy. The “creative” attribute (whatever its subtle definition might be) is actually an optional extra. Push comes to shove, that’s an attribute people are pretty willing to give up, so long as the four key attributes are preserved (easy to enjoy, easy to learn, easy to value in a status economy, and easy to integrate into an “authentic” social identity). Just because sexy work is the kind we want to save doesn’t mean it is the kind that is easier to save. In fact it is harder to automate schlep work, which we grievously misunderstand. We have to consider work from the point of view of machines. Almost all our confusion about automation can be traced to a single sloppy conflation: between algorithmically scalable/unscalable and schleppy/sexy. Just because we don’t want to do certain kinds of work, doesn’t mean machines are better at it. They might be worse. If you actually look at the work computers leave for us — supporting algorithmically unscalable information work — you will see that it is a far larger category than the “sexy that can be packaged as creative” subset that we are racing desperately to save. It may still not be enough to keep everybody productively employed, but there is certainly more to do than we think there is. The easiest way to appreciate the emerging human condition to adopt a couple of new metaphors for machines: machines as children and humans as intestinal flora. ### A. [Converting freedom to output](https://www.ribbonfarm.com/2013/10/02/truth-in-consulting/) ### B. [Frills](https://www.ribbonfarm.com/2014/01/01/free-as-in-agent/) A frill is neither an obviously non-functional aesthetic touch (that would be a _flourish_) nor a clearly unnecessary functional capability (that would be *wasted *functionality). Rather, it is a functional capability you want to signal as being a part of your life*, *but not actually use. If your workspace has a proliferation of frills, you are either a hustler (not the good kind), or worse, you’re bullshitting yourself. If your choices are aesthetically and financially consistent (premium of everything, budget everything, minimalist everything, showy everything, maximalist everything, blue everything, paisley everything), there’s a good chance you are creating a workspace full of frills. If you make choices based on anticipated real patterns of use and learning, there will be a good deal of variability in your choices. Solid, premium choices for frequent-use things, cheap and flimsy choices for things you want to have in hand just in case for non-critical emergencies, must-work-when-needed choices for option capabilities, beginner choices for learning projects, and so forth. --- ## Expressing Myself https://xylix.github.io/blog/expressing-thee-self | 2019-06-07 | tags: confusing > Expressing my self How are thoughts output? People think a lot. However, we only output a fraction of this. There's a significant problem here; the most fundamental assumptions in our thinking are the ones we intuitively consider to be "trivial". For anyone outside us, be it somebody else or our future selves, these "trivial" bits are the most nontrivial ones. They are so fundamental they rarely get expressed. I dislike outputting information based solely on my feeling or intuition. However, these bits are the ones I'll most likely miss in the future since they've been formed via unconscious processi. Often I take into account how I'm "supposed to think" when I'm forming coherent wholes. However, this is counterproductive. Other people's supposedly good thinking strategies rarely are applicable to my mindspace. I like to think in weird words. I dislike them, however, because it's hard for other people to understand. But when I move from my intuitive, hard to understand thoughtforms to less intuitive, easier to understand for other people thoughtforms, it simplifies the output. Lowest common denominator. If someone hasn't formed their vocabulary and thought systems to work in the same way as mine then, of course, my natural way of communicating is somewhat alien. And that's okay. We as humans are creatures who are able to do interpersonal communication. I can publish weird shit and get asked how it's supposed to get interpreted. (thanks to Ziz for showing me a case example of applying this.) I should trust my future interpretations. And everyone who I communicate with. People can ask precision-increasing questions. I also have an inappropriately great liking for old English words. It's weird and not very practical. But I like it. So it shall be. No reason to abandon a microhumoric habit just because someone might judge it, especially if I find writing in the microcomedics amusing. Also, I find actual old English hard to read, so it's ironic to want to integrate it into my thinking and thought processi. Also, I've for a long time thought being "edgy" on purpose is insane and harmful to your communication as a writer. But if being edgy is the intuitive language of your brain right now, what do? Is it preferable not to write than to write text with a single mediocre weakness? At times I also develop likings for words, even when it's not the most descriptive word for what it's trying to do. Often I inappropriately use words in my head. But should I spend the time fixing this or just let the words do what they want? (And later after getting past the tic find painful amounts of cringe in my old texts) Avoiding cringe and/or shame is a recipe for failure aversion which is a recipe for stalling both in skill and knowledge. Go through the grey rock. Do the mistakes. Pay the price. Smile in the face of the people who are mad at you because you dare output more shame-inducing work than they. --- ## Quotes: Be Slightly Evil https://xylix.github.io/blog/being-slightly-evil | 2019-06-05 | tags: quotes, book, rationality, work-in-progress > Notes on Being Slightly Evil (Venkatesh Rao, 2013) Or; Be Slightly More Effective In Whatever You Do, in socially questionable ways. Misdirect. [Play The Game. ](https://open.spotify.com/track/5p6xhgQCwzX0G9PadMU9GA?si=Zm_3HJ9KR-ywSNeLemMUsQ) "One principle this  philosophy gives me is what I call my amorality heuristic: an idea is  Slightly Evil only if it is, in principle, equally valuable to both good  and evil people. Anything that works better only if you are good, is  naturally suspect in my mind." "Action for the Slightly Evil favors chaos creation" "Let’s say you learn a  few clever techniques to close sales. You know the sort of thing I mean –  using words that have subliminal persuasive effects, specific gestures  or facial expressions, priming, cues unrelated to the sale like sexual  imagery – things like that. Things that hack the overt intentions of  whoever you are interacting with, and bring unrelated desires into play.  You’re dangerously close to playing with the psychological equivalent  of roofies." ... "But most everyday  situations are only partly adversarial. To the extent that they are not,  you should assume that there is value in having the other party’s fully  engaged intelligence in play." " the paradox:  idealism believes in change and creates unchanging human beings.  Tragedism (to coin a word) believes humans cannot change their  fundamental natures, yet believing in it actually transforms humans far  more radically than the idealist view." "Among the major  pop-psychology/self-improvement classics, the only one that hints at  this process is Paulo Coelho’s The Alchemist, which has at its core a  gem of an idea: that seeking the philosopher’s stone to transform base  metals into gold ends up transforming you. The protagonist of the book  isn’t an angsty, tortured soul looking for personal growth, he is on a  mundane quest for literal treasure, like your average entrepreneur in  Silicon Valley. The transformation is a side effect." "The smart way is to  acknowledge the reality of true conflict and judiciously decide, for  each obstacle, whether to go through it or around it." "The rules aren’t a  minimum definition of the profit-making business of a corporation. They  are well below the minimum. Even disengaged minimum-effort types  (“losers” in the Gervais Principle sense) do more than this under  normal circumstances." "blatant archetyping. A subtly different (and morally more defensible) approach to typecasting people." --- ## Diffracting https://xylix.github.io/blog/diffractery | 2019-06-04 | tags: confusing > Thoughts on some particular sources of diffracted mood I just read this [https://www.ribbonfarm.com/2019/05/30/the-age-of-diffraction/](https://www.ribbonfarm.com/2019/05/30/the-age-of-diffraction/). Eyeing through my watch later and to-read lists, I realized all this content is very much _diffracted_ and it makes me feel _manifold_. There's [anime](https://www.youtube.com/watch?v=K_c1gQw6S6Q)[analysis](https://www.youtube.com/watch?v=8ekWi2hpVCM). [Philosophy](https://www.youtube.com/watch?v=q54VyCpXDH8). [Psychology](https://en.wikipedia.org/wiki/Bloom%27s_taxonomy). [Information manglement.](https://ia.net/topics)[Information Integration](https://www.jackkinsella.ie/articles/janki-method). [Typography](https://practicaltypography.com/). [Essentialism](https://www.youtube.com/watch?v=h8u4clhDHvQ). [Dark forest theory of the internet](https://onezero.medium.com/the-dark-forest-theory-of-the-internet-7dc3e68a7cb1). [Butterick's Practical Typography.](https://practicaltypography.com/)[Wes Anderson ???](https://www.youtube.com/watch?v=994Ez58kgjQ). [Tarantino](https://www.youtube.com/watch?v=XATONsyKml0). [Magnus Carlsen](https://www.youtube.com/watch?v=Qc_v9mTfhC8). [FMAB](https://www.youtube.com/watch?v=MohAKdL4ftE). WALN. [HE.E.CWP](https://www.youtube.com/watch?v=kffo3pxNO7c). [Kurz](https://www.youtube.com/watch?v=H6u0VBqNBQ8)[gesagt](https://www.youtube.com/watch?v=n3Xv_g3g-mA). [Under the scope](https://www.youtube.com/watch?v=GshRfLKw0Z0). [Choicedox of paroice](https://www.youtube.com/watch?v=VO6XEQIsCoM). Literally. --- ## Review: Normal People https://xylix.github.io/blog/book-review-normal-people-sally-rooney-2016 | 2019-05-31 | tags: review, book > (Sally Rooney, 2016) They made me feel it. The people in this book. Lack of priority in the best years of youth. Naivety so intense it hurts to look at it. Connell shows us the evil that can come from conforming to norms which do not even exist. Being a prisoner of your theoretical anxiety-world. Conforming as the outsider actually does happen to real people too. And it makes one wonder how painful life can be made for no good reason. Marianne was alone and lonely. Then less alone but even more lonely. It's hard to open up. Even harder is accepting that sometimes even the theoretically perfect connection isn't enough to make a relationship function. Things change. People change even more. I hardly recognised that I was reading. The text's fluidity was excellent. --- ## Things Of Interest https://xylix.github.io/blog/things-of-interest | 2019-05-28 | tags: > Things of Interest Sort of a blogroll To be re-read: - [https://www.theschooloflife.com/thebookoflife/category/leisure/](https://www.theschooloflife.com/thebookoflife/category/leisure/) - [https://zettelkasten.de/posts/barbell-method-reading/](https://zettelkasten.de/posts/barbell-method-reading/) - [https://zettelkasten.de/posts/zettelkasten-outline-script/](https://zettelkasten.de/posts/zettelkasten-outline-script/) - [https://www.drmaciver.com/2019/05/how-to-do-hard-things/](https://www.drmaciver.com/2019/05/how-to-do-hard-things/) - [http://mindingourway.com/](http://mindingourway.com/) To be evaluated: - [A Developmental Framework for Rationality – mindlevelup](https://mindlevelup.wordpress.com/2018/03/11/a-developmental-framework-for-rationality/) - [Almost No One is Evil. Almost Everything is Broken.](https://blog.jaibot.com/) - [Essays - Gwern.net](https://www.gwern.net/index) - [Joel on Software](http://web.archive.org/web/20130706145038/http://www.joelonsoftware.com/) ([https://www.joelonsoftware.com/](https://www.joelonsoftware.com/) ) - [Nick Bostrom's Home Page](https://nickbostrom.com/) - [Peter Norvig](http://norvig.com/) - [Study Hacks - Decoding Patterns of Success - Cal Newport](http://www.calnewport.com/blog/) - [The Complete Guide to Deep Work (including a step-by-step checklist)](https://doist.com/blog/complete-guide-to-deep-work/) - [You Are Not So Smart](https://youarenotsosmart.com/) Already consuming: - [https://slatestarcodex.com/](https://slatestarcodex.com/) - [https://meltingasphalt.com/](https://meltingasphalt.com/) - [https://www.ribbonfarm.com/](https://www.ribbonfarm.com/) - [https://apenwarr.ca/log/](https://apenwarr.ca/log/) - [https://moretothat.com/](https://moretothat.com/) - [http://schwitzsplinters.blogspot.com/](http://schwitzsplinters.blogspot.com/)