Worth mentioning III: Acquisition loops, NFTs explained, Orson Welles and friendship, and B2B sales

This is the continuation of the worth mentioning experiment where I shared relevant links to be kept for future references.

Acquisition Loops: The old ways of acquiring new customers -aka funnels- are outdated. Modern brands are adapting their marketing strategy and shifting their tactics to acquisition loops. In this article, there is an explanation accompanied by some examples from relevant brands.

NFTs, explained: Currently cryptocurrencies are in everybody’s mouth. Even newer trends are the Non-Fungible Tokens (NTF) which are a piece of information that certified your ownership over a digital asset. This link explains it in detail on a conversation style addressing most of the typical questions an average person may have.

Orson Welles, art and friends: He is an innovative professional that has interesting takes on art and friendship. This is a 2min video worth paying attention to. He regards his friendships over any of his art in spite of maybe regretting those choices. So, in the end, we’re all people.

Winning Through Intimidation: This is a book summary very concise and clarifying. The concepts are simple but worth knowing to be aware of when you’re being played.

30 B2B sales techniques that work: Most of the sales techniques on internet are B2C. However, in this instance, I found a worthy not-so-basic guide for B2B. It is worth keeping around.

The Veblenian Entrepreneur

For quite a long time I’ve been thinking that people tend to focus their time on easy things instead of focusing on the complicated ones in an attempt to avoid pain. People, in general, try to avoid harmful situations which leads them to take the path with the least pain possible (at least at the start) i.e. the easy path. In some cases, the easy and straightforward choice may become the worse long-term solution. But this scientific publication made me rethink the problem. In a way it is related to conspicuous consumption where people choose to buy items by the status they give rather than the value and utility they provide.

In the article, Rasmus et. al. state that we are heading towards an untrepeneural economy. As defined in the paper, an untrepeneural economy is a seemingly dynamic society full of inefficiencies and a substantial lack of innovation. This is achieved through the promotion of entrepreneurship irrespective of their likelihood of success. Leading people to desire the “entrepreneur lifestyle” as an identity. But this lifestyle is flawed for the simple reason that many endeavors fail and the ones that make it big are extremely rare and not the norm. Even though startups and innovation are needed in a society, the distribution success vs failure of startups is heavily skewed towards failure. Individuals who start a company have many odds of failure which incurs personal risks. Starting a company is something that people should carefully consider.

The entrepreneurship industry benefits from promoting entrepreneurial endeavors in a catch 22. This industry motivates individuals to build startups to get rich but the industry itself needs only aspiring people. So the more people start startups the better, but also if they fail and keep trying that’s recurrent revenue! If an individual has a failed startup it may be due to a lack of skills so they will consider buying more info-products to get better and have more chances the next time. So in a way, the best possible course for the entrepreneurship industry is about selling dreams and expecting people to keep showing up every time their dreams get crushed.

Currently, there is a cultural celebration of entrepreneurship founded by many parties. Universities are promoting innovation through many programs, VCs, hubs, clusters, governments, etc. These ventures create a vibrant startup environment that may be more likely to attract trend-following individuals. These vibrant environments created people with the desire to present themselves as entrepreneurs. Sometimes they are people in search of jobs or have wealthy families to support them. The Veblenian entrepreneur is the one who desires to build his or her identity on being an entrepreneur and being apprised for it.

Veblenian entrepreneurs “work” on early-stage startups. They are highly engaged with the ecosystem to signal that they are active entrepreneurs thus obtaining the recognition of their counterparts. They approach work in an enjoyable and leisure-like approach. They love pitching, networking, and attend idea-competitions as an opportunity to have fun and socialize rather than creating tangible value. In a way, they see pitching as a ritual to be part of the community. But they lack deep technical knowledge. They are good enough to engage in tech talks and impress non-technical audiences. They only need to look competent and have a plan.

“Real entrepreneurs” have industry experience which Veblenian entrepreneurs see as an asset whereas Veblenian entrepreneurs see their knowledge gap as an asset to reinvent the industry and build grand alternatives irrespective of their viability.

Veblenian entrepreneurs see acquiring venture capital as an end itself irrespective of their source (family, friends, and fools vs experienced VCs). Capital and the most fashionable technology give them legitimacy to be in business. Technology for them is a fashion statement showing that the entrepreneur is working on something visionary and cutting-edge.

Innovation-driven entrepreneurs design their physical and work environments to attract and motivate talented workers whereas Veblenian entrepreneurs design it mostly for their own enjoyment and as a statement of coolness and anti-corporate sentiment. Like most of the things they do it lacks substance. It represents an unproductive form of entrepreneurship with the principal purpose of emulating successful entrepreneurs. This creates an entrepreneurial process based mostly on consumption rather than production. They mostly validate their identity through the consumption of entrepreneurial goods instead of materialized achievements (product development, sales, profitability, etc.).

The rise of entrepreneurship is based on several factors. The feeling of self-realization and making a difference is inspiring to many, especially when a young employee has a mundane and unfulfilling job. This creates an identity tension that can be resolved using the counter-narrative of being an entrepreneur. It also helps to escape the job market realities where maybe not everyone is easily employable. So, entrepreneurship creates an extended period of unemployment financed primarily by parents or spouses whose demands are insulated from real market forces. The Veblenian Entrepreneur is not bound anymore to the corporate constraints nor the socio-economic realities of the market while at the same time they are being praised by other fellow entrepreneurs.

Veblenian Entrepreneurs are not only a risk to themselves, but they are also a risk to the whole ecosystem. Upon failure, the aspiring entrepreneur may choose to rebrand themselves and become a mentor, coach in incubators, or work on other parts of the industry playing up their experience. Inspiring others to take the leap leading some to believe that this world is full of charlatans and dreamers. Veblenian entrepreneurs incur other costs to the community like increase the risk of seed-stage investments. Leading to an actuarial increase in the price of equity, reducing the available funding for other kinds of entrepreneurs. Leading to an overall slower technological progress and economic growth.

The solutions proposed in the paper are that institutions encourage more experienced individuals and discourage the young and inexperienced. The young are less likely to succeed leading them to take unsustained risks. Whereas the old face higher opportunity costs thus preventing unfounded pursuits. The policies should be growth-oriented and prevent the romanticized idea of entrepreneurship. Entrepreneurship has substantial costs that should be explicitly stated.

Here you can find the table in the manuscript where they compare the innovation driven entrepreneur vs the veblenian entrepreneur on several axis.

Exemplary differences between innovation-driven and Veblenian entrepreneurship
Exemplary differences between innovation-driven and Veblenian entrepreneurship

Roulette Wheel Selection in Python ūüźć

The roulette wheel selection (also known as fitness proportionate selection) is a function used by genetic algorithms for selecting potentially useful solutions for recombination.

The crossover individual probability is computed based on the individual’s fitness divided by the sum of all population fitness. The following is the formula for it:

roulette wheel chromosome probability

where pi is the probability of each chromosome equals the chromosome frequency divided by the sum of all fitness. Let’s imagine that the roulette wheel selection algorithm is like a pie chart. Each individual has a fitness value and the sum of all is the circle. So the probability of selecting a potential mate depends on your fitness with respect to the rest. The following illustration shows the probability of selecting each of them depends on how much space they take in the pie.

Roulette wheel selection pie chart example

Roulette wheel selection in genetic algorithm python

An example of the genetic algorithm roulette wheel selection in python. Easy python implementation without pseudo code.

If you desire to apply this genetic algorithm operation as a minimization problem all you have to do is reverse the probabilities of the function. the roulette wheel selection for the minimization problem requires updating the probabilities to 1-prob. Below the python example:

I hope that was clear, if not leave a comment and I’ll do my best to clarify it.

Genetic Algorithm Python Example

Genetic Algorithms (GA) are a subclass of evolutionary algorithms that emulate natural evolution. Darwin’s theory on natural selection states that the fittest individuals are the ones which reproduce. Following this theory, genetic algorithms are composed of three main phases: selection, reproduction, and mutation that attempt to copy the working mechanisms of nature. Genetic algorithms are principally used to find the global optimal solution heuristically.

Genetic Algorithm Applications

Genetic algorithms have been applied to many different problems in a wide spectrum of industries. This set of algorithms are widely used by computer science students to solve problems like the travel salesman problem (TSP) or the knapsack problem but it is widely used in many fields. All of the following points are also evolutionary algorithms applications since they are a bigger set of genetic algorithms.

Genetic Algorithm Steps

To program the whole genetic algorithm from scratch in python can be intimidating. Therefore, we’ll go through the genetic algorithm step by step. The next figure shows the other of each of the tasks involved to implement the full ga algorithm.

Genetic algorithm state diagram
Genetic algorithm step by step flow chart.

1. Start

First, randomly define N possible solutions to the problem. The first thing to do is to randomly generate solutions to the problem. They don’t need to be the best or follow any particular pattern, they will be the seed upon which later the best solution will be found. If you feel confident, you can try to create the initial set of possible solutions in the region where the optimal solution may be found. Instead of generating the solutions randomly, you can try to provide pseudo-random guesses on which may be the ideal solution. If you overdo it you may get stuck in the local optima instead of the global best solution.

2. Fitness Evaluation

With a set of N possible solutions is time to evaluate each of them individually and assess the fitness one by one. Fitness is a metric that represents how well each of the individual solutions performs for our model. If a solution is looking nice and well-optimized the fitness will be high whereas a wrong solution will have a low score. However, sometimes we may want to search for the minimal value of the function. If we have a minimization problem, then the best solution will be the one with the lowest value.

3. Progenitors selection

Based on the previously computed fitness the progenitors are selected. The higher fitness an individual solution has the higher the probabilities it has to mate and produce offspring (descendants). We simply need to select a set of progenitors based on their mating probability. The selection process is executed as many times as necessary until we obtain enough progenitors to produce N kids to replace the original set of N solutions. It should be noticed that each progenitor can mate more than once and with different partners. To select the parents there are several strategies (sorted from most to least common):

Roulette Wheel Selection

The roulette wheel is a selection method based on fitness probabilities. So, to do that you need to add up all the fitness metrics for each of the solutions and give each solution a probability of being chosen so that probability is individual_fitness/total_fitness.

Rank Selection

As the name indicates one should rank the solutions using the fitness function from worse to best. Then number them so that the worse is 1, the second worse is 2, etc. Then we add up these numbers and compute the probability as before individual_rank/sum_ranks.

Tournament Selection

This selection strategy is slightly longer. We randomly select a subset of solutions and pick the best enough times as solutions we need. Notice that if the subset has a size of 1 we’re effectively picking at random.

4. Mating or reproduction

Two different solutions are expected to mate. For simplicity here we will assume that reproduction is done between two solutions although there seems to be evidence that more progenitors increase the performance of the algorithm. The mating consists of merging the two solutions into one keeping bits of each of the parents. The mating can be done by exchanging fixed sections of the solution, but also selecting random bits of each parent. In either case, we need to make sure that the solution is still consistent. For example, if no repeats are allowed, we need to check that no repeats exist in the offspring, otherwise, that needs to be corrected so the solution satisfies the problem constraints.

5. Mutating

The mutation step is important to prevent that our algorithm gets stuck at the local optima. The local optimum is a solution that seems the best if we look at nearby solutions but it’s not the best possible solution. The best possible solution or global optima may be behind a dip and therefore we need randomness to jump across hills. The mutation step generates this so necessary randomness. Depending on the selected randomness, the mutation step changes different parts of the solution arbitrarily. If it’s too little we get stuck at the local optima, if it’s too much it will break the best solutions preventing them from consolidating and keep improving the general population fitness. There should be noted that some implementations do have inclusion criteria for the offspring. Some applications have a filter that prevents really bad offspring to be added to the set of solutions. Other solutions include mechanisms to prevent that the generated offspring are too similar for the sake of variation. The higher the variation the higher the chances of achieving a better solution, otherwise it can converge to all the solutions being the same.

6. Stopping criteria

If the stopping criteria are met, then we stop the execution. Otherwise, we go to step two and repeat the whole process again. Since the best solution is unknown a set of rules can be defined in order to stop the computation.

  • There is a solution that satisfied the minimum criteria. That means that there is a solution that has a fitness equal or better than we expected to be satisfied.
  • We already performed too many iterations. The algorithm has looped enough times so we assume that nothing better can be found.
  • We spent the budget. The computation/time/money has been used and there are no more resources left to continue iterating.
  • The solution has plateaued. The solution does not seem to improve and maybe it is not worsening either. The algorithm seems unable to find something better.
  • We think that the solution is good enough. After checking the results manually we can decide that we’re satisfied with the results and decide to stop the experiment.
  • A combination of all. We can merge all of them and find the best stopping rule for our taste.

Genetic Algorithm Example

Let’s get our hands dirty and code a genetic algorithm in python for optimization. To keep the consistency of methods, the evolutionary algorithm in python is going to be the genetic algorithm (GA). We first will tackle the traveling salesman problem using the genetic algorithm and then the knapsack problem also with the genetic algorithm and python. You’ll find both genetic algorithm python code in GitHub as a link at the end of each problem description.

Traveling Salesman Problem Genetic Algorithm Python

We’ll go through this genetic algorithm example step by step. The traveling salesman problem or TSP is a classic problem where you have a set of cities and there is the need to find a round trip route across all cities without repeating any.


Fitness assessment




Stopping criteria

A fully working implementation of the TSP problem implemented using a Genetic Algorithm in Python can be found on the jupyter notebook in Github.

Knapsack Problem Genetic Algorithm Python

This is the second ga algorithm in python. The knapsack problem provides us with a set of items with a weight and a value. Based on that we need to find which objects include in the collection so that the total weight is less than or equal to the limit and the total value is as large as possible.


Fitness assessment




Stopping criteria

The full working implementation on jupyter notebooks and python using a genetic algorithm of the Knapsack problem can be found on the GitHub.

Advanced: Tricks to improve your code

Each problem has a different set of rules, but researchers have found out a different set of techniques that if properly used can improve the performance of the algorithm.

  • Good initial solutions Instead of setting the problem with random solutions you can start with bets on how the solution is going to look like. In this way, the algorithm will be directed and hopefully closer to the best solution the problem has.
  • Elitism consists on keeping the best N solutions of the problem as they are. You should keep them as they are to the next generation. By ensuring that the best solutions are passed over generations the algorithm will avoid that the overall quality of the population decreases. Keeping the best will enable an improvement over the existing solution.
  • Adaptive hyperparameters enables adaptation for the crossover and the mutation rate depending on the state of the solution. Higher variation may be desired at the start but once we’re close to the solution we should aim to search in the nearby space.

Short video explanation

This is a short video explanation of genetics algorithms. After the presentation, the speaker shows his Traveling Salesperson Problem (TSP) implementation and how different parameters affect the performance of the algorithm. Different population sizes or mutation rates affect performances at various rates. It is very well explained and clear.

Thanks for reading. If you have any further questions leave a comment!

Resumen y rese√Īa de ‚ÄúC√≥mo hacer que cualquiera se enamore de usted‚ÄĚ de Leil Lowndes

Leil Lowndes es una experta reconocida a nivel mundial en relaciones. En su libro ‚ÄúC√≥mo hacer que cualquiera se enamore de usted‚ÄĚ nos asegura que el amor tiene reglas para ambos sexos. Hay ciertas caracter√≠sticas que hacen una persona del sexo opuesto mas atractiva. Nos pasamos muchas horas frente el espejo intentando mejorar nuestro peinado o la ropa, pero nadie nos ha ense√Īado que caracter√≠sticas y cualidades nos hace m√°s atractivos. A parte del punto de vista de citas y amor, el libro nos ayuda a entender las relaciones humanas des de otro punto de vista. Este libro no es solamente para hombres o mujeres, sino que sirve para todos. Todo esto esta basado en estudios cient√≠ficos humanos, pero expresando su investigaci√≥n de un modo ameno y apto para todos los p√ļblicos.

El primer paso del amor son las miradas

Mira el chico o la chica, si cruzas miradas desv√≠ala. Pero vuelve a mirar en 30-40 segundos. Si los dos volv√©is a cruzar miradas hay inter√©s. Esta vez haz alg√ļn gesto, por ejemplo, sonr√≠e y ac√©rcate. Di algo, cualquier cosa, no tiene que ser nada del otro mundo. Un comentario del sitio d√≥nde est√°is es suficiente.

Intenta mirar intensamente a los ojos (sin pasarte). Miradas intensas causan sensaciones buenas. Mientras habl√©is presta atenci√≥n. Las conversaciones van dejando migas de pan que tienes que ir recogiendo. Puede que mencione un perro, pues aprovecha y preg√ļntale por el perro. En cualquier caso, mantente relajado, o por lo menos apar√©ntalo. Sonr√≠e y disfruta del momento. La felicidad es contagiosa.

Las primeras citas

No pidas una cita temprano. Deja que se lo ganen. Que la primera cita sea llena de emociones. No la saques a comer esto es para más adelante. Escoge algo venturoso o que os deje mentalmente agotados por las emociones. En cualquier caso, vístete bien. Un hombre que vista bien tiene mucho ganado las chicas se fijan en esto.

Empezar una relación

Cuando ya hay√°is pasado un par de citas juntos hay que mirar otros aspectos. Ten√©is que ser diferentes, pero no muy diferentes: complementarios. Mira aspectos como deportes, m√ļsica, libros, y hobbies en general. Las mujeres intiman hablando, los hombres haciendo (recuerda que esto puede cambiar a nivel individual).

Alimentaros el ego mutuamente. Hacer sentir el otro especial. Reconoce por lo que quiere ser recordado tu pareja y refuerza su visión. Ambos lados de la ecuación deben tener la sensación que han conseguido lo mejor de lo posible. Que las cualidades que se valoran las lleven a la mesa. Las cualidades son aspecto físico, dinero, prestigio y estatus, conocimiento e información, personalidad y naturaleza propia.

En general las mujeres les interesan las emociones y sensaciones. Hablan de salud, animales, filosof√≠a, personas y problemas. Aqu√≠ los hombres ten√©is que respaldar y no competitivos. Los hombres son m√°s simples. Quieren sexo. Pero los hombres tienen que hacer sentir a las mujeres especiales. Personaliza el sexo para ella. Lo que quieras hacer no es para todo el mundo, es solamente para ella. Si ya llev√°is tiempo juntos pregunta por el pasado, que le gusta y escucha atentamente, probablemente no sea muy exhaustiva. ¬ŅQue busca tu pareja en una relaci√≥n? ¬ŅQu√© significa ser un hombre ideal? ¬ŅQu√© significa ser amado? Est√°s preguntas pueden dar valiosa informaci√≥n.

New Year’s Resolutions 2021: Building a healthy lifestyle

Life is a never-ending learning process. For many years I have been writing publicly my new year resolutions (2020, 2019, etc) and my own assessments at the end of the year (2020, 2019, etc). It is a practice that I find useful to reflect on oneself decide what to keep and what to change. This practice is not perfect and includes failure, like last year when I tried to list my goals in a monthly format instead of bullet points. For this year I considered going for weekly goals but it seemed impractical. Separating a year in 7-day increments (52 weeks) requires too detailed planning. It is impossible to make it realistic considering the large numbers of unknowns. Instead, I will come back to my bullet list with coarse goals and hope I’m skilled enough to devise the short-term action plans at each step without deviating from the goal. I will again use the famous SMART technique to define and assess the goals.


  1. Physical exercises: With Corona and regular working from home, I’ve been quite physically inactive compared to other years. Gyms, swimming pools, and fitness centers had reduced capacity or were closed. And me working from home did not feel like going out into the cold and do sport. With this resolution, I intend to do short dayily home workouts and at least twice per week longer ones.
  2. Yoga and stretching: Following the same reason, sitting all day worsens everybody’s flexibility. I intend to do at least once a week 1h yoga and daily 10min of stretching exercises.
  3. Meditation: I had better times with meditation, but this year I’m finishing my PhD which seems to be a stressful time for many. I’ll try to do my best and not let it get me. Being Zen is my goal, so 10-20min of meditation daily is a must-to. I’m inclined to put napping time as a replacement for meditation is accepted.
  4. Books: For many years already I’ve managed to read quite a lot of books on top of my work reading. I intend to keep that, but I’ll try to get some action points from each book and implement it. Otherwise, knowledge gets lost between words.
  5. Reduce social media and time-wasting websites: Last year I reduced my social media consumption to once per day “just in case”. Sometimes I even forgot to check and people understood that. This next step is to not check it at all. For streaming services, I will limit it to eating time or weekends. Done eating? Done watching. Regarding messaging apps, reduce the replies to two/three times per day. It does not require speed. The same goes for the work ones.
  6. Travel: In spite of corona, this year I managed to do intercontinental travels and visit family several times. Now with the vaccine and “summer approaching” things can only get better. If possible and without too much of a hassle, I would like to visit a new country during summer.


  1. Finish my PhD: That being said, hand in before the end of the year, if possible even defend it before Christmas. Also, publish one or two manuscripts that are in preparation.
  2. Secure my post-PhD position: Decide what I want to do afterwards (career-wise) and secure it. That does not exclude getting some free time between jobs to travel or do other things.
  3. Mushrooms: Learn to grow mushrooms in a professional manner. Start with the basics like champignon and go to more advanced types. The goal is to find the easiest way to make the farming reproducible.
  4. Batteries: Think and try to move this field forward. Renewable energy lacks consistency over the day; therefore, energy storage seems the solution to bridge the gap between micro shortages. Understand at a deeper level how batteries work and are being recycled would meet the requirements to accomplish this resolution.
  5. Start a company: This point has been here for as far as I can remember. I hope to get my act together and accomplish the goal. A success is generating a recurrent income.
  6. Investments: I’m considering trying to invest and generate a stable income source. I don’t know yet how to approach this.


  1. Get a 6 pack: Because why not. Since I’m doing home workouts I can target specific muscle groups.
  2. Declutter: Check all my possessions and donate things I dislike or don’t use.
  3. Quit alcohol alltogether: I haven’t been drinking much at all mostly because it does not bring me anything but I still do it in social gatherings. I thought it could be interesting to see if I manage to not do it at all, and how to replace it. A little bit like I did with meat.
  4. Keep more regular schedules: I’ve been waking up and going to bed at similar times during the whole year. Let’s see how much more regularity I manage. Meaning that on weekends I still follow the same schedules as the weekdays.
  5. Publish here monthly: It is not easy to write things here but I try my best. I would like to continue the current approach because it has not felt like a burden. Let’s continue with this rhythm.
  6. Arguing more often: I feel I have an intuition for things but I’m not always able to express it correctly on the fly. I should try to defend better these “intuitions” without preparation time.

Remember to aim for the stars, be happy, and when in doubt choose the adventure.

Happy new year!

2020 resolutions revised: Incredible plot twist and the new normal

What an incredible 2020! One year ago nobody would have expected this, and now the whole world has normalized this “new normal”. A bat flu has crashed all world economies and united mankind for the research of a vaccine to overcome this new virus. I guess nobody had a pandemic in the apocalypse bingo for 2020. Nevertheless, I tried to make the most of this rollercoaster year and instead of grieving, I tried to accept what we’ve been given. In spite of the pandemic, interesting things happened at many levels. Following last year’s resolutions format (in text not in bullet points), I’ll review them as text as well.

During the month of January Corona was a thing in China but very few people were worried about it. Chinese people had the biggest hurdle, they could not go home for their new year. I celebrated the lunar/Chinese new year with some (Chinese) friends, prepared Chinese food, and watched Chinese TV. Nice evening indeed. During this month I also had farewell parties and packed my things to go to Australia. I got my climbing license (and forgot about it until now, I will probably need a refreshing course next time I climb). I created the website but didn’t do any work on it besides putting content in.

I lived in Perth (Australia) during February, March, and April. The flight was long and tiring but at the same time exciting. The workplace was nice, although a little empty (they were transitioning to new offices). I got to deepen my Keras/Tensorflow (and PyTorch later) skills but not as much in-depth as I wanted. After the first, or first and half months of me getting there they started implementing lockdowns and banning activities. However, before that, I managed to do many cool things! I got licensed in scuba diving and visited several diving locations, Rottnest island among them. I went surfing regularly on Saturdays, I didn’t become a professional but I managed to stand on the board regularly. It was a quite tiring activity. More than 90min of intense sport at once I would not recommend it. I did not join the toastmasters but I visited the immediate surroundings of Perth. I did quite a lot of socializing and dancing. Lured by the other activities the business idea died here.

In May nothing happened except that I flew back to Denmark to my new apartment in Copenhagen. My stay in Australia was completed, I could not travel within Australia so I went back to Denmark and “enjoyed” the danish lockdown. Surprisingly after landing, I saw some friends outdoors, some of the traveling rules or PCR tests were not yet implemented. Still early corona times. Summer arrived (June, July, and August). That training I had planned didn’t happen. People still were undecided about many things and I also choose (and became a late registration) not to join open water swimming. In September I didn’t buy the bike, and it’s probably not happening for a while now.

From October to the end of the year I didn’t train much. Lockdowns and regulations evolved all over Europe, nothing could be taken for certain. I went home during the summer and I choose not to visit friends during the fall. I did improve my bouldering skills to a decent level. We’ll see how my overall fitness holds now after the current lockdown.

I also had year-round goals. From the books, I had planned to read I completed some but not all. I managed to keep the quality of my inputs and outputs. I had little failures with Linkedin and TV shows at the end of the year. I improved my diligence for less appealing things, but there is still room for improvement. Although I joined yoga once a week during autumn, I did not meditate or stretch daily. But I managed to write here regularly ūüôā After checking now, I realized that this blog went back to more reflexive and deep philosophy posts (even though readers seem to appreciate other topics).

Life follows always its curse, and one cannot plan everything. On the unexpected side, I made a few new but good friends, in climbing, running and swimming but also at work. I finally finished and published the Harvard manuscript (we started 4 years ago?). I got co-authorship in two other papers in the Danish group where I do my PhD and my main paper seems to come to fruition. The method seems robust, the idea is interesting, and the results are good. I aim to send it to a journal soon enough. My Australian work is taking longer than expected but it also seems to be progressing, so I’m happy about it.

I finally managed to settle my US taxes, so in the following weeks, I’ll close my bank account there. I started learning lock picking. It is interesting to know the concepts and have some basic skills but I’m not good at it. I also learned the theory about mushroom cultivation and next year should be the practice year. Because of the increased home office and lockdowns, I tried new recipes (cakes and proper food). I even dared to bake a turkey for thanksgiving which turned out to be delicious. I made different kinds of wine and I even brew beer. The beer was a bit of a failure because I killed the yeast due to the high temperatures of the liquid but I saved it with baking yeast. Just before Christmas, I did turron and neules (typical Christmas sweets in some Spanish regions).

In conclusion, I consider I aimed for the stars and I managed the circumstances quite well. The adventure happened within the possible limits. In spite of what could have been, it has been a quite amazing year.

EASY install anaconda on macOS using homebrew

Installing anaconda on a macOS is not a simple task. Sometimes it requires a lot of troubleshooting, like setting the right shell initialization. To solve this I propose to install anaconda through homebrew. All of these commands are performed through the terminal unless otherwise specified in step 3.

1. Install homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Install anaconda

brew install --cask anaconda

3. Set the right anaconda path

Edit the ~/.zshrc file. You can do it using vim:

vim ~/.zshrc

And add the following line at the bottom:

export PATH="/usr/local/anaconda3/bin:$PATH"

This sets the anaconda directory on the global path variable from the macOS operating system.

4. Restart the terminal

You can either close the terminal or load the path configuration running:

source ~/.zshrc

5. Initialize conda’s shell

You have several options bash, fish, tcsh, xonsh, zsh, and powershell. But I recommend the following

conda init zsh

That’s it! Otherwise, shoot me a comment and we’ll figure out.

Moral hazard…

…that occurs when people don’t have skin in the game.

If you’re able to place a bet and you get the wins but you won’t bear the losses why don’t you go all in every time?
We should look for people that have skin in the game, they can still err but at least they will suffer the consequences. It’s very easy to bet on other people’s money and walk away when things don’t look good.

It’s not only us that should check we have skin in the game but check the others as well to identify and ignore charlatans. Words are easy and titles do not provide skin in the game. Do the hard work results will come.

Theodore Roosevelt “The Strenuous Life” (1899)

Following my Theodore Roosevelt stack of quotes here you can find some segments of “The Strenuous Life” speech he gave in 1899. Each of the following paragraphs represents a segment.

I wish to preach, not the doctrine of ignoble ease, but the doctrine of the strenuous life, the life of toil and effort, of labor and strife; to preach that highest form of success which comes, not to the man who desires mere easy peace, but to the man who does not shrink from danger, from hardship, or from bitter toil, and who out of these wins the splendid ultimate triumph.

Far better it is to dare mighty things, to win glorious triumphs, even though checkered by failure, than to take rank with those poor spirits who neither enjoy much nor suffer much, because they live in the gray twilight that knows not victory nor defeat.

If we are to be a really great people, we must strive in good faith to play a great part in the world. We cannot avoid meeting great issues. All that we can determine for ourselves is whether we shall meet them well or ill.

No country can long endure if its foundations are not laid deep in the material prosperity which comes from thrift, from business energy and enterprise, from hard, unsparing effort in the fields of industrial activity; but neither was any nation ever yet truly great if it relied upon material prosperity alone.

The work must be done; we cannot escape our responsibility; and if we are worth our salt, we shall be glad of the chance to do the work‚ÄĒglad of the chance to show ourselves equal to one of the great tasks set modern civilization. But let us not deceive ourselves as to the importance of the task. Let us not be misled by vainglory into underestimating the strain it will put on our powers. Above all, let us, as we value our own self-respect, face the responsibilities with proper seriousness, courage, and high resolve. We must demand the highest order of integrity and ability in our public men who are to grapple with these new problems. We must hold to a rigid accountability those public servants who show unfaithfulness to the interests of the nation or inability to rise to the high level of the new demands upon our strength and our resources.

Of course we are bound to handle the affairs of our own household well. We must see that there is civic honesty, civic cleanliness, civic good sense in our home administration of city, State, and nation. We must strive for honesty in office, for honesty toward the creditors of the nation and of the individual; for the widest freedom of individual initiative where possible, and for the wisest control of individual initiative where it is hostile to the welfare of the many. But because we set our own household in order we are not thereby excused from playing our part in the great affairs of the world. A man’s first duty is to his own home, but he is not thereby excused from doing his duty to the State; for if he fails in this second duty it is under the penalty of ceasing to be a freeman. In the same way, while a nation’s first duty is within its own borders, it is not thereby absolved from facing its duties in the world as a whole; and if it refuses to do so, it merely forfeits its right to struggle for a place among the peoples that shape the destiny of mankind.

I preach to you, then, my countrymen, that our country calls not for the life of ease but for the life of strenuous endeavor. The twentieth century looms before us big with the fate of many nations. If we stand idly by, if we seek merely swollen, slothful ease and ignoble peace, if we shrink from the hard contests where men must win at hazard of their lives and at the risk of all they hold dear, then the bolder and stronger peoples will pass us by, and will win for themselves the domination of the world. Let us therefore boldly face the life of strife, resolute to do our duty well and manfully; resolute to uphold righteousness by deed and by word; resolute to be both honest and brave, to serve high ideals, yet to use practical methods. Above all, let us shrink from no strife, moral or physical, within or without the nation, provided we are certain that the strife is justified, for it is only through strife, through hard and dangerous endeavor, that we shall ultimately win the goal of true national greatness.