本文总结如何制作中式家常版本的“葱花饼”。| jdhao's digital space
今天总结一下在德国超市里面常见的苤蓝(德语叫kohlrabi,在中国东北叫“卜留克”) 凉拌的做法。| jdhao's digital space
和众多网友一样,我也有高考 PTSD。| jdhao's digital space
Recently I was trying to sync my hiking course from Garmin connect to my Garmin Forerunner 965 and found that it does not work.| jdhao's digital space
In Elasticsearch, you can use wildcard in a lot of the index operations. This is very handy, but can be dangerous sometimes, e.g., when you use wildcards when deleting indexes. You may delete unintended indexes accidentally and cause serious interruptions to your business/work.| jdhao's digital space
This post will give a quick summary on how to import GPX route into Garmin watch.| jdhao's digital space
When I try to run pytest locally for a Python project, I noticed that the import in those test scripts may fail if I run pytest in different directories. The import error usually means that your actual code modules is not in the python path, so they can not be imported successfully by your test scripts. This has something to do with how pytest set up the python path when you run it.| jdhao.github.io
本次来复刻泰国非常受欢迎的打抛饭。| jdhao's digital space
本文总结如何用烤箱烤羊肉串。| jdhao.github.io
When we are using 3rd packages in Python, we may see some warning messages. For example, when you use the package BeautifulSoup and provide it with an url:| jdhao.github.io
这次来总结一下烤箱烤鸡腿的做法。| jdhao.github.io
In this post, I would like compare several speakers that are relatively small in size and are suitable as desktop speakers.| jdhao.github.io
最近趁着黑五入手了外接显示器,顺便了解了一下显示器相关的各种标准和技术,本文做一个总结。| jdhao.github.io
Although neovim has built a lot of modules to ease the use of Lua, sometimes we may still want to use some packages from Luarocks. In this post, I would like to share how you can install a package from Luarocks and use it in nvim.| jdhao's digital space
寒冷的冬天,和羊肉汤更配。| jdhao.github.io
When using APScheduler package in Python, I want to run the scheduled job right after I start the scheduler. How can I do it properly?| jdhao.github.io
When we use one of the google cloud python clients to communicate with GCP, there may be errors occurring sometime calling the client API methods.| jdhao's digital space
今天来总结一下土豆金枪鱼沙拉的做法。| jdhao's digital space
本次来总结一下椰汁咖喱鸡的做法。| jdhao's digital space
本次来总结凉拌绿豆宽粉的做法。| jdhao's digital space
When deploying a Python application to GCP Kuberntes Engine, we may see issues that the logging level is not correct in the cloud logging explorer. In order for the Python logging package to work with GCP, we need some additional configurations.| jdhao's digital space
Readiness and Liveness probe # The readiness probe checks if the service in pod can accept traffic. Kubernetes will remove the pod if the readiness probe fails. The liveness probe is used to check whether the pod is still alive and functioning. If the liveness check fails, the pod will be restarted by Kubernetes. Types of readiness and liveness probe # We can use HTTP, command or TCP probe. Get configuration for liveness and readiness # We can run the following command to get the pod configur...| jdhao's digital space
Use the SEARCH() function with care # In the GCP Log Explorer, if you type some thing in the search bar without quote, the SEARCH() method is used. The SEARCH() function is case insensitive. Note also that SEARCH() function uses text analyzer to tokenize the string. The SEARCH() function performs exact matches, not partial matching. So SEARCH("world") will not be able to match worldwide. Another example, suppose in some of the log entries, you may have “today is 202408180429”, if you use ...| jdhao's digital space
本次来复刻一下在网上看到的西班牙土豆饼。| jdhao's digital space
The version conflict error is often seen when doing document indexing operations in Elasticsearch.| jdhao's digital space
In Elasticsearch (ES), you can run a task and check its status with the task API. For example, if you use the reindex API in ES with parameter with_for_completion=False, ES will not wait for the process to finish and will return a task instead.| jdhao.github.io
In Elasticsearch, there is index API where you can index a single document to an index.| Blowfish
Recently when I was working with Elasticsearch, I found this weird issue that the document count for the newly created index is not correct. Also there are problems with reindex, if you reindex the source index to dst index, there is nothing in the dst index despite no errors.| jdhao.github.io
Some notes on using the Google Cloud storage.| jdhao.github.io
Welcome to my personal website! I am glad to hear what brings you here. Do not hesitate to share in the comment below! Who am I? # Hi, I am jdhao, a machine learning engineer who is passionate about working with computer vision. I am experienced in tools like NumPy, OpenCV, and PIL, and also in data visualization tools like Matplotlib. I have broad experiences working on various vision-related projects, ranging from image retrieval, OCR, document image analysis and reconstruction, to video de...| Blowfish
在德国的德超很少能见到羊肉,不过在土耳其超市可以很方便买到羊肉。 本期我来做一个煎羊排,之所以不是因为烤羊排是因为我没有合适的烤盘和锡箔纸,所以没有尝试。| Blowfish
本文简单总结凉拌茄子的制作方法。| Blowfish
Apart from directly configuring the Python logging in the code itself. We can also configuring the logging using fileConfig or dictConfig.| Blowfish
A short summary on how to debug Wezterm issues.| Blowfish
This post is about how to set up black, the popular code formatter for Python projects.| Blowfish
This post is about how to set up Git so that people using different operating systems can work in the same repository, without messing up the line ending of source files.| Blowfish
In this post, I want to share a list of tips/setups for the Garmin Forerunner 965 watch. Some of the settings are also applicable to other Garmin watches.| Blowfish
In this post, I want to share the complete process and setup to download files from GCP in a Databricks workspace notebook. Since the notebook itself is non-interactive when you run the shell command, the setup process is a bit different from the normal GCP authentication.| Blowfish
We can use the Databricks cli to interact with Databricks workspaces programmatically on the command line. In this post, I want to share simple usage about Databricks cli.| Blowfish
Some observation and finding in working with Databricks workspace files.| Blowfish
这次我来复刻手抓羊肉饭。| Blowfish
General # Init script is just a shell script, which will be run for each node in the cluster, before Apache Spark driver or executor JVM starts. A cluster can have multiple init script if you want. These init scripts will be executed in the order provided. Cluster scope init script # If your cluster is not in Edit mode, you can not see the button to add init script. You need to click Edit in the cluster configuration page, then you can add init script to your cluster settings.| Blowfish
Using a virtual environment for Project dev in Python is a good practice. venv is module that is available since Python 3.3. It can help us to manage the virtual environment in a simple way.| Blowfish
A summary of different file systems in Databricks.| Blowfish
For array type column, explode() will convert it to n rows, where n is the number of elements in the array. For map/dictionary type column, explode() will convert it to nx2 shape, i.e., n rows, 2 columns (for key and value).| Blowfish
本文总结麻婆豆腐的做法。| Blowfish
本次来复刻台湾卤肉饭。| Blowfish
Some notes on developing a web application with FastAPI.| Blowfish
The Databricks cluster is using UTC as the default timezone. So when you run some time-related code, the displayed time is not the local time, which is not ideal. In this post, I want to share how to change the timezone setting for Databricks cluster.| Blowfish
In my previous post, I shared how to profile a single function using line_profiler. In this post, I want to share how to profile Python script/module and visualize the profile stat to pinpoint the slow part of the code.| Blowfish
家常少油版本茄子肉沫制作。| Blowfish
TL;DR: Lazy.nvim is amazing. It is easy to switch and reduce your startup time immensely. Just try it! I think Packer.nvim has been a revolutionary plugin manager after nvim 0.5. It introduces a lot of lazy loading techniques to speed up the startup process of Neovim.| Blowfish
To extract pdf pages from several files, we can use the open source tool qpdf.| Blowfish
In post, I want to summarize the complete steps to deploy a demo web service implemented with FastAPI in Docker container.| Blowfish
When I upgrade wezterm from April release to July release, I noticed that some of the unicode icons in my neovim config are shown as box.| Blowfish
TL;DR: my config for pylsp can be found here. In this post, I would like to share my latest setup for Pylsp in Neovim.| Blowfish
In HTTP request, same query parameter with multiple values are allowed. For example, for query parameter brand, the query string looks like this: brand=foo&brand=bar. How to parse value of this parameter to a list in FastAPI? There are several different ways.| Blowfish
本文总结简易版“土豆胡萝卜烧牛肉”做法。| Blowfish
In this post, I want to share what I find about the Zsh startup files and their loading order in macOS.| Blowfish
Recently, I met a strange issue related to Tmux. After open a tmux session, the PATH variable is changed and is different from outside tmux.| Blowfish
In this post, I want to share how you can work effectively with JSON file inside Neovim.| Blowfish
Databricks is centered around notebooks for doing a lot of works. As a result, it is often not obvious how to run or re-use code from another notebook or Python module. In this post, I want to share how to do this in the Databricks.| Blowfish
This is my learning notes for Agile and Scrum.| Blowfish
本文总结简易版凉拌牛肉的做法。| Blowfish
In this post, I want to share some command line tools written in Rust, which are good alternatives to some of the original tools used in command line.| Blowfish
In this post, I summarize how to get or set a Databricks spark configuration/property.| Blowfish
I got a Macbook with a German keyboard layout, and I am not accustomed to it. This post summarizes some tweaks made to the German version of Macbook to make it work for me.| Blowfish
Vimium is a Chrome extension that lets us to browse the internet with our fingers, rather than using the mouse. In this post, I will going to share how to add a custom search engine for Vimium.| Blowfish
要使用 Google Pay 需要谷歌服务的支持,小米手机至少旗舰机型都是自带谷歌服务的,但是默认没有打开。以我的小米 12S Pro 为例,直接在系统设置界面搜索 “谷歌”,有个“谷歌基础服务”,打开即可。| Blowfish
由于疫情的影响,已经有两年没有在老家过春节。中国国内疫情管控放开以后,终于有机会回乡过春节。| Blowfish
我在高中还是大学读了宗璞的 《野葫芦引》,其中的《西征记》描写了滇西抗战的经历,所以我一直想去腾冲走一趟,去拜访一下国殇墓园,苦于打工人没有时间,这个愿望在今年实现了。| Blowfish
每次去贵阳都是浮光掠影,因为它不是我的终点站。这次是因为去云南,需要在贵阳转车停留一晚。| Blowfish
找海外工作很重要的一个要求语言过关,根据国家的不同,对语言的要求也不同,英语国家当然英语就足够了,有的欧洲国家公司还会要求你掌握当地语言,如果你不会,那投递简历时就可以跳过这些公司了。本文谈一谈我的英语学习经验,仅供参考。英语主要分为听说读写四个方面,下面就分开写一写我的经验。| Blowfish
大学毕业以后,就没去过长沙了,来深圳工作几年也没去过长沙一次,正好趁着这次有时间去长沙逛一下。| Blowfish
如果你要问我心中第一美食之都,我会说是西安。西安我此前已经去过两次了,但仍意犹未尽。| Blowfish
拿到德国工作 offer 以后,我们需要申请合适的签证前往德国。本文将会详细总结德国工签(欧盟蓝卡)申请需要的材料,填写细节,以及面签的流程,希望能够帮助到有同样疑惑的人。 Disclaimer: 本文仅仅代表个人经历,非官方权威建议,仅供各位读者参考。| Blowfish
2022 年总共写了 49 篇博客 1,大部分博客很短,没花太多时间就可以写完。从类别上看,大部分都是技术相关的,关于 Neovim,Lua,机器学习,SQL,Python 使用等等,可能并没有太多人看,主要是自己总结留给自己以后参考,有几篇是记录自己平时做菜的过程,还有一些是自己对一些问题的思考或者记录,例如 如何提技术问题 以及 对新冠的记录。 数据中看博客 # 根据 Google sear...| Blowfish
在 2022 年 12 月底,我也感染了 omicron 病毒,本文对感染过程做一记录。| Blowfish
A very common confusion for new users of Neovim is that their option settings for a particular filetype does not work in init.vim (or init.lua).| Blowfish
In Lua, to pass variable number of arguments, we can use ... (three ellipses) syntax in function argument.| Blowfish
Introduction # In Python, some packages are written mainly or partially in C++, and the Python interfaces are just wrappers around the binary C++ module. Among these packages, there is OpenCV.| Blowfish
I am using MySQL server version 8.0.30 on my macOS. I try to read a local csv file into a mysql table using LOAD DATA LOCAL INFILE following some post1, but unfortunately I get the following error:| Blowfish
This is not a complete list of changes. Just what I have noticed. Complete release note for nvim 0.8 is here.| Blowfish
We can use trigger to automate oerations, for example, preventing insertion of a record if certain condition is met. In this post, we show an example trigger function and its usage.| Blowfish
Here is how much I spend for living in Shenzhen, China as a non-local people. Note the cost may vary a lot depending on various factors. All numbers are in the unit of Chinese Yuan (symbol ¥).| Blowfish
I saw from the repo awesome neovim1 a plugin that helps the user create the intermediate dir when they save a file. I wondered why this feature even needs a whole plugin? You can literally do this with a few lines of code.| Blowfish
Recently, when I try to use Ctrl-left and Ctrl-right in Neovim, I found that they are not received by Neovim. I thought this is a Neovim issue. However, when I test these two shortcuts using cat in the terminal (I tried both Kitty and wezterm), it does not work either.| Blowfish
As a machine learning engineer/data scientist, after the model development process is finished, we need to deploy the model as a web service using different web frameworks. To achieve maximum performance and lower the hardware cost, we often need to optimize the speed our service, including TensorRT acceleration, config tuning, etc.| Blowfish
This post summarizes how to update author info of Git commits.| Blowfish
When we serve a HTTP service via uWSGI, we can monitor its stats via uwsgitop.| Blowfish
In Python, we often see the use of super() in class initialization.| Blowfish
If we pass list as parameter to a function and change the parameter, the original list is also changed. This is because list is a mutable type, when we pass list to a function, we are passing the same list.| Blowfish
序:有感于无休无止的核酸检测,我觉得有必要写点什么,记录下正在发生的和已经发生的历史。 很多年后,回过头看 2020 年 1 月,我们无法预料到 Covid19 竟然对人类社会造成了如此大的影响。| Blowfish
工作的意义是什么?| Blowfish
Recently the nvim 0.7.2 version is released following the 0.7.0 release two months ago. Here are some of the updates in 0.7.0.| Blowfish
update log2022-10-12: add fake data generation website. 2022-10-11: add TUI client for MySQL and Postgres. 2022-09-24: add sample database we can try. In this post, I will talk about setting up SQL databases and also the tools needed to write SQL queries.| Blowfish
As a machine learning engineer who mainly deals with vision-based projects, I have little opportunity in my work to actually use SQL (Structured Query Language.). Even when I need it, I often just ask the data engineers for a favor. However, I thought it would be an essential skill to learn even if I do not need it for now.| Blowfish
I saw a post from stackoverflow asking why his logger does not work as expect? The code is like:| Blowfish
In this post, I want to share how to generate ply files in Python.| Blowfish
As a long time nvim user, I am learning Lua and slowly transition my nvim config to lua. In this script, I will share some tips and lessons I have learned the hard way.| Blowfish