Asurin Software Developer

Free books

Reading books is the cheapest way to improve oneself.

I will list some source of free books shared online.

  1. Free programming books from github https://github.com/EbookFoundation/free-programming-books

  2. Shared by program think (Chinese) https://github.com/programthink/books

Jupyter Lab

In 2001, Ipython was made as an in interactive command-line terminal for Python. It offers an enhanced read-eval-print loop (REPL) environment.

Later, Jupyter notebook was created as a web-based interactive computing platform for creating and sharing computational documents.

Jupyter Lab is the latest web-based interactive develop environment for notebooks, code and data.

There is also jupyter hub which supports a group of users if that’s your use case.

In this post, I am going to talk about how to install and config jupyter lab. read more

Pre-commit

pre-commit is a tool to check formatting, obvious syntax error, etc before code it committed to git repo. This tool helps us from paying attention to those small errors. read more

Visualize DAG with pyvis

In previous post Visualize DAG with Graphviz, I talked about how to use Graphviz to display DAG. Graphviz is greate but it can only generate pictures in svg. For nodes with large amount of data, it will be hard to show all the data in a single picture.

With today’s javascript, it will be nice to show and hide node infomation dynamically. Rowland has created a internal repo called gexplorer, which runs on a flask server with vis.js on the front end. The problem with this implementation is that it is hard to share the data. The other people has to have access to your server, or have to spin up his own server. Or he can only receive screenshot of the picture. I think it would be nice if we have this kinda of dynamic implementation with jupyterlab.

Last Friday(03/24/2023), a colleage Tzintzuni Garcia from bio team of GDC, did a presentation about his attempt. He used bokeh to build the visulaizaiton. Network is shown in the example pictures of bokeh but I could not find good tutorial about how to build network with bokeh on its offical website. I think network is not one of their main focus. And in the presentation, the library is not hendling hierarchy for DAG very well.

Recently I found a python library called pyvis. Which also use vis.js. vis.js is a read more

Use Github Action for Jekyll Static Site

I used to use github pages for my jekyll blog post. There was a _site folder which contains the generated artifacts of my site.

I think have the artifacts added to the version control is not a good practice:

  1. The artifact is genrated, so I have duplications in my repo.
  2. If I change a template, all the pages in the artifacts will be changed. It will be hard for me to track my changes.

After read about the jekyll document. I decided to use Jekyll-aciton to generate my site with github action. read more