216 karma · joined July 20, 2019
But the funniest part was when I wanted to translate "jeûner" in Greek. "jeûner" in French means "to fast", in the sense of not eating. However, Google translated "jeûner" into "gregoria" in Greek, which means fast in the sense of speed... It went through English to translate "jeûner" into "fast" then "fast" into "gregoria"...
My solution for a long time was to add the test within the "for" itself, but it is often confusing for users.
Have you ever tried to make a Python program to do exactly that?
I only used couple of sentences to build my prompt...
The Latin alphabet is very poor and is composed of only 26 letters. And many sounds in Germanic languages do not have their counterpart in Latin. People started to use combinations of letters to represent their own specific sounds, which were pretty unique to each country. For instance, you cannot read Dutch if you apply English rules to it.
In the case of English, the problem is even more complicated. For one, the official language of England up to the 15th century was French, which explained why 40% of a text in English is composed of French words. Second, when people started writing in English, there was no government body to enforce a common spelling. So, printer shops all over England came up with their own ways to spell out words, and the result is this hogwash of spelling that is English today.
The last problem, which is a problem that many international languages, such as Spanish, German, French and Portuguese are faced with, is that every decision to change the spelling of your language should be the result of international comities. And since, there are so many different accents today, it has become quite difficult to come up with a regular pronunciation, and hence, a regular spelling for any of these languages. I can tell you that as a Frenchman, speaking Parisian French, I would have a hard time convincing Belgian or Quebecers that my accent is the right one... :-)
Now, a language usually becomes an international language when the country who speak it reaches some kind of dominance, it has nothing to do with any qualities this language might have. In Europe, this was the case for Greek, Latin, then Italian, French, German and now English. Machine translation might change this situation, but I doubt it, since English is so much ingrained into science and technology now. And the US, and most English speaking countries, have little interests to see their language loosing their prominence. We French speakers went this route after the Second World War... So we know the drill... Economically, this is a real bonanza, you can attract the best students, the best researchers, the best journals etc... You can impose your movies, your literature and of course your values... Why do you think Paris was the capital of arts and literature during the XIXth century? Language... Now it is New York or London... Language again.
As an employee you are not a samouraï ready to die for your daimyo.
If you don't have a life beyond your job, you are basically ready for your next burn out.
These Billionaires might commit 100% of their time to their company, but it is for their personal gain. On the other hand, as an employee, you will never really earn more than what was contractually signed on your contract, when they will tremendously benefit from your work, your creativity and your intelligence.
I work in a laboratory specialized in Artificial Intelligence that belongs to Naver (NLE). These two languages are used in many research projects, especially for document processing before applying ML methods. We used Tamgu for instance in Machine Translation and in Sentiment Analysis. We have also published in the past datasets for conference papers, that required the tools to be open source, so that people could reproduce our experiments. This year for instance, we used the Prolog engine in Tamgu to produce a dataset to train a transformer on inference.
The process to make them open source was quite thorough and quite painful, but I cannot complain.
The case of LispE is little bit different, I created it to have a more flexible platform to experiment with functional features, which I could not do with Tamgu, which is too large now.
The blogs are simply a way to make these tools more visible, and since I'm French, I usually write them in English and French.
The hash-table is actually a sparse table, which is extended whenever it is needed. If you have less than 64 values, then one bucket is enough. If you have 70, then you need two buckets. Basically, this sparse table is a table of at most 1024 element tables.
Since variable ids are contiguous, it means that you can fill in this sparse table element by element, only creating new buckets when needed.
So basically, what I'm doing is the following:
id / 64 -> yields the sub-table id % 64 -> yields the position in the sub-table
These operations are very fast since we are dealing with basic binary arithmetic.
I have been dealing with reference counting for years as I have implemented other programming languages in the past (see Tamgu for instance).
I only increment the reference counter in two cases:
a) A value is pushed into a container b) A value is stored in a variable
The fact that containers are classes, with their own methods to store elements makes it very simple to handle these cases. I only decrement the reference counter, when the value is removed from the container or the variable is modified and released.
Now, one of the things I do is that when I push a container A into another container B, I DO NOT modified the references of the elements in A. There are no recursive increments.