Up until now everything I have built and launched was done in private. Not only did I often feel alone (offline and online), but my software creations didn't really succeed in the way that I wanted... and that's to connect with people and help them improve their lives.

My biggest fear was that if I share too much publicly, before the first version is done and released, someone else could steal my idea and beat me to it.

#buildInPublic #WordPress

1/

The funny thing is the fact that most of my projects are related to WordPress, and in order to be hosted on the #wordpress.org - it must be #openSource software.

Even if I decided to avoid permissive license, anyone with solid technical knowledge could've found a way to copy the code without my permission.

#buildInPublic

2/

On top of that, it seems that the development of #Ai will make many of my technical skills obsolete - the only comparative advantage left to many of us will be our inherently human traits - to be sociable and show emphaty.

I must admit I neglected those skills in my pursuit of #programming knowledge.

Now, I decided to completely change my approach to building software - I'll do it in the open. After all, there's not much to loose.

My next #WordPress plugin will be #buildInPublic

3/

Everything related to my public journey of building this #WordPress plugin will be posted in this thread.

I've started coding it few months ago, but hit a wall with some existing #machineLearning models available in #javaScript.

Since I decided to start learning #python in recent weeks, I think it's time to overcome this technical hurdle.

Stay tuned...

#buildInPublic

4/

The first thing I tried related to the #machineLearning models, is to use #nodeJS packages for keyword extraction.

Besides not being updated in some time, I found nothing even remotely useful - those packages just split most of the text into key phrases and served me a useless array of hundreds of them.

#buildInPublic #WordPress

5/

Then I thought why wouldn't I try to use more advanced/bigger #machineLearning text models?

So I decided to try #Google machine learning models, available through #javaScript in the browser itself (tensorflowJS).

The result was even worse. It not only took more than 10 minutes to download the model for each test, but it gave me no keywords at all!

I followed the official documentation, and not even the most basic example worked.

#buildInPublic #WordPress

6/

I already knew that all of those #machineLearning models available in #javaScript, were originally built in #python.

I also knew that in order to train those models in my own specific text (#WordPress), I would need to learn python.

At that moment I had no time (or patience to be more precise) to do that. So I decided to pause the project.

Until this #Ai hype started in the recent weeks... and I became convinced there's no way around learning/using python.

#buildInPublic

7/

After few days of browsing and reading online, I found two #python packages for #keyword extraction that look promising:

- https://github.com/MaartenGr/KeyBERT

- https://github.com/LIAAD/yake

I really hope they will do the job, without needing to learn how to train a model on my own specific text related to WordPress plugins (from the #wordpress.org plugin repository).

If anyone knows any better way for keyword extraction, let me know.

#buildInPublic

8/

GitHub - MaartenGr/KeyBERT: Minimal keyword extraction with BERT

Minimal keyword extraction with BERT. Contribute to MaartenGr/KeyBERT development by creating an account on GitHub.

GitHub

I've tested out keyword extraction using #keyBert, and it looks promising - more so than any #javaScript package I came across before.

It took around 10-15 minutes to install all of the dependencies of the package. It reported no warnings or errors in the #terminal.

I was pleasantly surprised that you can run/test out #python code inside of the #vsCode editor with a one simple click.

I still need to get used to difference in #dataTypes compared to #php & #js.

#buildInPublic

9/

Today I was #refactoring some #php code for a #WordPress plugin I use internally, to retrieve #plugins_api data used for my other plugins in various form.

I forgot how painful it can be, trying to respect all of the messy structure of #wpAdmin, while trying to achieve relatively simple tasks.

Didn't encounter any php error, or warning - which is a relief. I had some simple #javaScript errors though.

I wish I've written that #code as modular...

#buildInPublic

10/

I started to use #python for the first time, and I must say it's manageable.

The best way to learn is by error - to search online for the exact error when it pops up. That's not so different to the learning process I had with #php, and especially #javaScript.

The biggest thing I need to get used to is not the different language syntax, but #dataTypes.

I came to realize that most programming logic comes down to data types manipulation and storage.

#buildInPublic

11/

Still slowly working on the #keyword extraction and storage in #json file.

I didn't manage to enable #stopwords in #keyBERT, so the plan is to filter the keywords in additional step.

The "#WordPress" or "plugin" keyword for each plugin would be useless.

The next step that follows will be to find #synonyms for each keyword... and I think I'll be using NLTK #wordNet in #python. Not sure if it's the best option.

12/