Skip to content

2023-10-26T17:14

Python's runtime type variance detector

https://peps.python.org/pep-0695/#variance-inference

2023-10-26T17:19

Invariant type

To create an invariant type it is enough to create a class that contains some methods that implements the consumer interface and others that implement the producer interface.

2023-12-13T13:54

what is your role at Soundhound? I am part of the Natural Language Understanding team. It is the middle stage in our solution. After speech recognition and before natural language generation. At the NLU team, we map user intentions to actions. In other words, when the user asks: "Navigate to a chinese restaurant closed to the Opera" we are responsible to decode that phrasing into the action of searching for a chinese restaurant close to the given place and then start a navigation to there. what are the challenges you face? An interesting one is disambiguation. Natural languages are very ambiguous and we should try to identify the most likely intent a user meant. For example, when the user says: "naviguer vers chez Jeronime", that could be a contact in my address book called Jeronime or perhaps a restaurant called chez Jeronime. For this case we could first look at how far is the restaurant from the user. If it is very far away, we discard the navigation to a restaurant to prefer the navigation to the contact in our address book. A funny example is the query: "What is the distance between the moon and the sun". It happens that there exists business places called "the moon" and "the sun", so we should be carefull to do the correct intent identification in this case. There are also language-specific traps. Let's say that we have the query: "initier la navigation vers Gare de Lyon". The most likely interpreation for this is: "Start navigation to the place called Gare de Lyon". But since places have arbitrary names, it could be the case that we have a place named "Gare", so another valid interpretation could be: "Start navigation to a place called Gare starting from Lyon". This also happens in Portuguese, for example. We were having long build times for one of our languages: Polish. The building process wask taking more than 13 hours. 6 times more than other languages. I was assigned to the task of solving the issue. I identified that thr problem was in how we were interpreting Polish phrasings. In general, any phrasing in Polish can have their words permutated and still have a grammatically valid sentence. So the problem is that we had too much code repetition in our system and this was causing the slowness. I did some tests to evaluate the problem and confirm this hypothesis. Next I created a script to search for common patterns in the code and replace them to blocks. By doing that we've got the reduction from 13 hours to 2 hours. why you want to leave soundhound? My development cycles are too slow. We have some technical debts and the consequence of this is a slower compilation/running process. The work became a litte frustrating because even simple fixes could take a full day of work. what languages you work with? C++, Python and Shell script.

2023-12-29T15:53

Regarding tox and pre commit: let’s use linter tasks to pre commit: black, flake8, mypy. And create a task in tox that calls pre-commit. That means that configuration settings for these tools should not go anymore in the pyproject.toml, but in the precommit configuration file instead.

2024-04-19T20:32

Normandia - https://www.normandie-tourisme.fr/circuit-4-jours-plages-debarquement/

2024-07-24T08:12

Python's async/await how it works behind the scene

https://tenthousandmeters.com/blog/python-behind-the-scenes-12-how-asyncawait-works-in-python/

2024-08-11T14:48

https://meet.google.com/xnu-ywqy-jyn