Create Tutorials for Glimesh Dev

Communty Contributors (Dev)

While Glimesh is community built we have a very low number of active contributors.

We’ve had some devs come in over the past few months who have expressed interest in helping the site. However, elixir knowledge doesn’t seem to be very common. I think having a glimesh-elixir tutorial would be helpful to introduce them to the language and the structure of the site. We could also have a few linked tutorials for general elixir knowledge and a path showing all the concepts required to effectively work on the site. I suggest a few tutorials for creating low level features on Glimesh. Ideally the features would go over basic elixir/phoenix/db interactions. I would volunteer to for this but my elixir knowledge is pretty poor :grinning_face_with_smiling_eyes:

I’ve thought about doing something like this for the api-docs. How to build actual products (chatbots, alerts, pulling stats, etc), rather than just API usage. However, most devs who use the API seem to have enough knowledge to do so without a doc. If this would be of value to someone let me know!

6 Likes

Who would be the target audience mostly? Is this experienced devs who might not know elixir? A mixed group?

I am wondering because I am thinking perhaps we can tie it into this How Do I Contribute / Involved Pages - #2 by Heiwa

Target audience are devs of any skillset. You will need some experience with programming concepts to work on Glimesh. However, the tutorials should be written assuming the reader knows nothing about elixir/phoenix.

I looked at the slideshow. I’m not sure this would fit in there. I’m imagining multiple pages of tutorials. Doesn’t really fit in a slide format. However, linking to it would be great :slight_smile: You could throw in some info about Glimesh dev though. I’d say something about what the site runs on (elixir/phoenix), and link to the tutorials once created. Stress that they do not need to be an expert, just willing to learn.

1 Like

Sounds good and I totally agree. I think this would be very beneficial though kind of help break the ice of diving into Elixir with Glimesh. May even be a worthwhile learning effort as well while making it. I would certainly reference something like this though in a contributing to Glimesh guide. The more helpful resources we can provide I think it makes it simpler all around.

I’ll write a tutorial for the API docs starting with creating a chatbot then. I’ll get it connected, then accepting general commands. Should probably add some sort of token refresh tutorial as well.

As I said my elixir knowledge is very poor so I doubt I would be able to write good docs for site dev. Maybe general flow, but not much more than that. Possibly mja or clone could work on that if they are not too busy.

1 Like

Making progress on tutorials related to the API. These are rather long, but they do provide a very thorough explanation.

3 Likes

As an experienced dev, I’ve been wanting to help since day one. However, I have been having a NIGHTMARE of a time trying to get Elixir and Glimesh’s code running on Windows. Often getting so bogged down that I’ve had to stop because of time constraints.

Having an easy to follow tutorial showing how to grab the code, get Elixir setup, build the server, and get a test Glimesh server up and running would be a great place to start…

2 Likes

Hey Kjasi,

I am not sure what issues you are having but I myself run Glimesh on windows, i followed the guide on our Github here : https://github.com/Glimesh/glimesh.tv it offers a guide to getting glimesh installed and set up and your pc.

Hopefully this helps, if not feel free to ask up in discord in dev-questions and we can hopefully get you set up!

I don’t know if anyone has actually got it to run on windows natively. I’ve only gotten it to run using WSL (linux on windows) and on a linux machine. The instructions on the Glimesh repo are for WSL. If you can’t get it to run we can try using a cloud service. I got it working with gitpod a while back.

GitHub CodeSpaces might be an option too: https://github.com/features/codespaces

Unfortunately, I’m using an older LTSC version of Windows that doesn’t support WSL2. This makes the suggestion on the Github basically useless, so yeah, I would have to run it natively. And I don’t have the time to figure out how to set that up.

Nor do I have any money to invest in Codespaces, a larger HDD to support dual booting, or any other “paid” solution.

Gitpod is free. They give you 50 hours a month. It takes a bit of config to get it working with Glimesh but I’ll look into creating a doc for it if you are interested. Its not too complex but if you are new to docker it can be confusing.

If enough people want to use gitpod we can add some files to the Glimesh repo to automate its setup. Mostly just copying the docker files over with a few changes.

I would potentially be interested.

I was/am keen to try my hand at a few things but because I am completely new to Elixr etc it was a bit daunting trying to get it all set up so anything to make it easier I see as a good move.

I’ll write something up as soon as I have time. You will want a github account and a gitpod account (use your github to sign in). They give you 50 free hours which is more than enough.

I got it running in a few minutes after using Docker so it should be pretty straightforward.


2 Likes

Here are the basics. I’ll probably write a doc with more details later but this will get everyone up and running. If this is easy enough for everyone we can add some files to automate the below actions. It will be a truly 1 click dev env. Very handy :slight_smile:

  1. Create a github and gitpod account. Use your Github to sign into Gitpod.

  2. Create a fork of the repository. You can do this by clicking on the fork button on the Glimesh repository.
    image

    3.Go to the below URL replacing your github username as shown.
    https://gitpod.io/#https://github.com/USERNAME/glimesh.tv
    Example - My username is aMytho
    https://gitpod.io/#https://github.com/aMytho/glimesh.tv

This will create a workspace. Allow it to load until the editor window is shown.

  1. Now we need to create the database for all the Glimesh data. In the terminal window enter the below command. If a terminal isn’t open press ctrl+j. You can also open it from the menu at the top.

docker compose up db

This will start a dev database. Next we need to install elixir and erlang to be able to run the glimesh code.

  1. Open a new terminal window keeping the previous window open. Enter the below commands pressing enter after each and allowing it to complete. You may have to enter Y if it asks for confirmation. Installing erlang will also ask you for a language and keyboard layout. Press enter and enter the number corresponding to the keyboard that you want.

wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb

sudo apt-get update

sudo apt-get install elixir esl-erlang

  1. Once installation is complete we can install the Glimesh dependencies and run the project! Run the below command in the terminal. You may have to enter Y or yes to install various tools.

./run.sh

Once the project is compiled we can access the Glimesh website. 2 notification windows will open on the bottom right. One says that port 4000 is open. Click on View in Browser. Alternatively, click on remote explorer on the left panel. Hover over port 4000 and click the globe. You may need to allow popups.

You can now view Glimesh from Gitpod! There is one final thing to do. We need to install an extension for syntax highlighting and intellisense. Click on the extensions icon on the left. Search for ElixirLS. Install it. This will take a few minutes. Now you can make changes to the Glimesh files and the website will automatically update. If something doesn’t work correctly you can stop the app with ctrl+c in the terminal and run the start script again. If you run into any issues let me know!

When you are finished press the menu button at the top. Close the workspace. If you close the tab it will automatically close after 30 minutes of inactivity.

3 Likes

I would suggest playing around with the glimesh_web folder first. Its easier to see your changes.

Thank you very much for this.

1 Like

Glimesh has increased the version number requred to run the project. The default verison we installed is 1.13.0 while Glimesh requires 1.13.4. To fix this you must replace the elixir version number in mix.exs with 1.13.0.

elixir: "~> 1.13.0"

You should access the project on port 400, not port 4001. SSL is difficult to setup with gitpod.

2 Likes