普通视图

发现新文章,点击刷新页面。
昨天以前STRRL's backyard

2024 Week 44: Passion or Profession

2024年11月4日 10:42

Passion or Profession

Last week I completed 虚伪的真心话 (超思考)by 北野武(Takeshi Kitano). Takeshi Kitano is a famous Japanese comedian, actor, and film director, and he is of the same age as people from my grandparents generation.

I am an east-asian, and I think China, Japan, and Korea are the three countries that have much similarity in their culture and history. So recently days I have been reading several books of Japanese / Korean authors, and I think that’s a really good way to learn and think.

There’re several different thoughts in this book, like “fast-food entertainment”, “useless politics”, “chasing dreams, selling dreams”, and “not earning too much money”.

The one most impressive to me is about “chasing dreams and selling dreams”. For me, in the past years of my life, I have always wanted to do something that I am passionate about. But in recent years, I have found that it is not always good and risk-free to only do what I am passionate about. I think it is very important to make an effort on other things that I have no interest in, and that’s something I have lacked in the past years.

Another aspect of this idea is bring the “good feeling” when user using the product. People may not really want to “be successful” or “be rich”, they do like the feeling of “being successful” or “being rich”. So making products / selling resources to people “want to become a engineer”, “want to become a designer”, “want to become an individual developer” would be a good way to make money.

But would a product so like that make value? I think it is a good question for me to think about. 😳

Professional Stuff

Setup CI with self-hosted macOS runner

We used to use FlyCI instead of using GitHub provisioned runners, because the former one is cheaper. But FlyCI announced that they get pivoted to AI CI/CD troubleshooting and the runner hosting service would be stopped(FlyCI: Discontinuing FlyCI macOS Runners - A New Chapter for FlyCI Wingman).

I agree that providing computing resources as github action runner is not a good business model. But AI CI/CD troubleshooting is an another trap. It’s way far from enough context from only the code base and CI/CD logs for now. But if it could be done one day, I would be very happy to see that!

So I have to setup a self-hosted macOS runner to pack my apps. Thanks to tart and tartlet, it is very easy to setup a self-hosted runner.

Eat own dog food on Haye

Last week I got my OpenAI account banned with no idea. I lost using chatGPT app and also the API key.

As a replacement, I use the new feature of Haye to continue the daily usage of chatGPT.

或许是天意, 倒逼我自己吃自己的狗粮 https://t.co/lzgBTRkqwZ pic.twitter.com/BAglXjxpAO

— STRRL.gpt (@strrlthedev) October 23, 2024

We turned our Apple Developer account to a organization account

After a 3 months of inactivity, we finally have new progress on our products. We’re going to release one new version of our product and also start 2 new products on testflight.

Personal Stuff

New Games

Monster Hunter Wild starts its public beta test on 2024.10.30 - 2024.11.04, it is a pretty great game.

I have played about 16+ hrs in the past 3 days, and I am still not tired of it.

MHW

The new generation of Monster Hunter brings lots of new actions and mechanics, and it is becoming more and more easy to get into. Players would have more fun in the game, and pro players would have more possibility to hit the ceiling.

I record some of my gameplay and would like to share to you:

试着用 steam deck 玩了下怪猎荒野

一帧不卡 两帧流畅 我这十五帧要起飞了 🤡

就是 bug 还是不少,视频尾最后居上了但是卡死了 pic.twitter.com/L7NPEo6dFG

— STRRL.gpt (@strrlthedev) November 2, 2024

Factorio Space Age is the new DLC for Factorio, it brings lots of new stuff into the game, but I still not start to play it.

BTW, the factorio team also has a great blog called FFF(Factorio Friday Facts), share stories about engineering and gaming design, I love to read it!

Link: https://www.factorio.com/blog/

You could also subscribe it on Follow: link

2025 would be a great year of games, with MHW, GTA6 and others.

New life in Vancouver

I have been in Vancouver for about 3 months(which also means my temporary driver license is going to expire, damn), I found that I have lost the first passion of exploring the city. Instead, I back to the busy ordinary life, without new exploring and communicate with new people. That’s not good.

The one big reason I want to move to another place is to get new experiences and information, also to meet new people. But now I am working at home, not working with a local team, and I have no friends in Vancouver. That’s not good.

I should make a plan to change it. Maybe any suggestions?

At last, it takes me about 90 mins to complete this blog, hope you enjoy it!

Cheat Sheet for macOS App Signing and Notarizing

2024年11月1日 12:46

Background

In the last 3 weeks, we just turned the personal Apple Developer membership into a organization membership, also changed the name as “Boring Design LLC”. I am working on replace old certificates and with new ones.

I just realized that I nearly forgot how to get the new certificates for electron app signing, so here is a cheat sheet for that, maybe it will help me again in the future.

Before Start

If a application is not signed, macOS will show a warning dialog when the app is opened, and the user needs to right-click the app and select “Open” to open the app. If the app is signed with a Apple Developer certificate, the app could be opened by double-clicking.

There is an app called Apprancy, to check the signing status (and more) of an app, like this:

Get the Certificates

We are going to use “electron/osx-sign” to sign the app, it will look up the correct certificate from keychain, so what we need to do is to get prepared with the certificates, download them from Apple Developer website, and install them into the keychain.

  1. Prepare a Certificate Signing Request(CSR) Apple requires a CSR to generate certificates, we could generate it from Keychain Access,:

No need to tune the settings, and remember to check the “Save to disk” option.

  1. Generate and Download Certificate from Apple Developer

Login into Apple Developer -> Account, then jump to Certificates

Click the “+” button to create a new certificate, and notice that we should create 2 certificates, one for “Developer ID Application” and another for “Apple Distribution”.

“Developer ID Application” is used for distributing the app outside of Mac App Store, and “Apple Distribution” is used for distributing the app in Mac App Store.

Download the certificates and install them into the keychain.

Setup Signing

By default, “electron/osx-sign” will look up the correct certificate from keychain, so we don’t need to specify the certificate explicitly. But we could specify the certificate explicitly by setting the identity option in the osxSign option if we have multiple certificates in the keychain.

1
2
3
4
5
{
  "osxSign": {
    "identity": "Developer ID Application: Boring Design LLC (XXXXXXXXXX)"
  }
}

Option reference: https://github.com/electron/osx-sign/blob/main/src/types.ts

Setup Notarize

Notarization is a process to submit the app to Apple for scanning, and Apple will return a ticket if the app is notarized successfully. We could use “electron/notarize” to notarize the app.

I use the following options:

1
2
3
4
5
6
osxNotarize: {
  tool: 'notarytool',
  appleId: process.env.APPLE_ID || "",
  appleIdPassword: process.env.APPLE_PASSWORD || "",
  teamId: process.env.APPLE_TEAM_ID || ""
}

and it requires:

  • Apple ID: your apple developer account email
  • Apple Password: the app-specific password, generate it by following the guide
  • Apple Team ID: the team id, could be found in Apple Developer -> Membership

It could also be used inside the CI environment, like GitHub Actions, by setting the environment variables.

Pack it

After setting up the signing and notarization, we could finally get a signed and notarized app:

That’s perfect, let’s ship it!

2024 Week 43: Personal Updates

2024年10月27日 07:33

Long time no see! Half years passed since my last weekly recap.

Lots of things happened in the last 7 months, and I think it’s time to get a quick update on my life.

Professional Stuff

I changed my job 2 times, from Limit Labs to RSS3, and now, GitRoll. I would not like to the comparison between these companies, but the one same thing I could feel is business is hard, and its really hard to complete the 0-1 process of making profit.

Boring Design

At Boring Design, we are still working on the Haye. And what a coincidence, when I working on the main chatting view of Haye, my ChatGPT account got banned by OpenAI. 😅

或许是天意, 倒逼我自己吃自己的狗粮 https://t.co/lzgBTRkqwZ pic.twitter.com/BAglXjxpAO

— STRRL.gpt (@strrlthedev) October 23, 2024

We’re also working on exploring the native integration with macOS, using Electron has some limitations, and we want to provide not only beautiful UI, but also more powerful integration with macOS system.

Cloudflare Tunnel Ingress Controller

Cloudflare Tunnel Ingress Controller is side project I am working on, it’s effortless way to using native Ingress to expose services in Kubernetes cluster to the internet.

I noticed there’re more adoption and contributors to this project, and more options and production level features are built by the community. Maybe I should spend more time on this project.

Personal Stuff

I moved from Hangzhou to Vancouver. Welcome to huddle me if you are in Vancouver!

I realized that my english is not good enough to communicate with people in English, so I need to make a new plan to improve my English, as daily practice, writing, and reading.

Lots of good routines are broken, like daily exercise, good sleep schedule and weekly recap. I need time to rebuild these routines.

Others

There’re still lots of things I want to share, like lots of new tech, new idea, new products, but I already spent 1 hours on update the blog, update hugo and them, and write this post. I need to back to work now.

Gap Year Wrapped - Timeline (Second Half)

2023年9月9日 12:01

Last Post: Gap Year Wrapped - Timeline

Timeline

I’m so excited to continue recording my gap year life the second part. Let’s start it.

February 2023

My major in the university is Digital Media TechKnowledge, so a lot of my university classmates works in Gaming Area like NetEase, Tencent, BiliBili and miHoYo. And actually I am also a hard-core gamer for most kind of games and I still have a dream to build my own game.

And finally, I have a chance to build a game, which is a VR game during the Global Game Jam (GGJ). It’s a global activity that calls for lots of game designer, developers to join the activity in person or online. In two days, 48 hours, to create an amazing game and at last we would show games to the partners.

Me, trying the VR Game

Video:

I also we also have a trip in Beijing, actually I have oNOgood experiment experience in Beijing. I prefer to Tianjin, it’s more than a modern city then Beijing.

Take a rest in Tianjin Street Cafe

BTW, I also met 象牙山刘能 in Beijing, and that’s the most exciting thing in Beijing.

We went the Universal Beijing Resort, expect for street pop-up event and float parade, the rest are all duplicated roller coasters.

In one work, not good as the Disneyland in Shanghai.

And I’m starting to prepare for the master degree and we find an advisory services for some references to pick school, and the paperwork.

At the last, we traveled to Qiandaohu, and it is very great trip.

Beautiful Qiandao Lake

March 2023

After I buy the Volkswagen car, I have a dream which is making an Itasa Car, which means I will paint some anime characters on the surface of the car.

I picked Hatsune Miku and which is virtual idol for 16 years. We started to design the itasa car with a designer in this month.

Design Work

I started to do something new, like streaming on YouTube and learning some principle of the design from Google UX and online courses from Facebook design. I also started to have a learning about English the TOEFL exam recently.

It’s also a great time enjoying Sakura flower. 🌸 I am very luck because there are several Sakura trees in my community.

April 2023

And then this month I took the first TOEFL exams and I got 89 which is not very good but it’s kind of enough for some normal school. I still need need to make more effort to get a higher score about 95 or a 100 but yeah it’s basic score for some applications.

We also travel to Yueyang again, took some beautiful memories.

We also attended the the Itasa Car Exhibition at ChangSha, 痛一会@长沙. Meet many nice and awesome guys, who love ACG deeply, and keep sharing the happiness to others.

After we back to Hangzhou, there was also a great news: BIRLAND(玉鸟集) started trail opening! In the next several months, we will have a great time in BIRLAND, meet many new friends and old friends. 🥰

May 2023

After travel to Yueyang, I also travel to Shandon, my hometown.

And in this month I also made new friends like daddy like 面包, 智子, LAKR, 炸鸡, Houge.

June 2023

We drove to Nanjing for 鸭血粉丝汤. Nanjing is the last city we traveled before the Covid 19 pandemic. Nanjing really impressive me with its delicious food 鸭血粉丝汤.

During this month, Apple announced the new device: Vision Pro. I think it worse me spending money to buy it.

This DIABLO IV was released. We spent a lot of time on it.

I also spent lots of time on making new friends and keeping connections with old friends. I met 图拉鼎 in this month, met the OriginCode from HZLUG, and I also met friend 深海带鱼, and we have a great time in the piano room.

July 2023

I registered as a Apple developer. Why I choose Apple Developer, well, you know, as an engineer, is not the final step to making living hood to making project or product, is selling your product to the end users. I think App Store is one of the best way for developers to sell their product.

I ams also a big fans of Apple product, I believe it will give me more chances.

Also away meet new friends like Xiaowen and Xinyi. Both of them are very professional in their domain area, and both of them have their different opinion to the differences things, that’s really impressive me.

And my left foot got really injured, (it does still not recover until I write this article). 😰

August 2023

I have a chance to travel to Shenzhen and Hong Kong.I travel to Hong Kong because I want to apply my credit card and banking account from the overseer oversee bank, and Hong Kong is one of the best choice. We applied for HSBC bank and ZA bank.

We also went for a special restaurant is called a magpie, the restaurant owned by one of my favorite Youtuber Cadence Gao.

We also travel to Longyou to met one of my friends who is also my ex-colleague. Longyou is a beautiful city which also have great food and awesome rally racing track.

Comparison with the Career working in Company

I will try to make a comparison Career in company and gap year life.

For the conclusion of career in company, I think the keyword is SIMPLE.

While I was working in company, we have clear goals(or maybe not so clear), we always have a direction in the professional domain. It might be making money or build projects or products and it’s very simple and intuitive.

For the conclusion of gap year life, I think the keyword is UNLIMITED.

I start to consider making my value in some form like building products, trying to make some investments, and making myself and my family happy. I started to think it, but I still have no clear answer to these questions. But at least, I started to think about it, rather than spend all my time on working.

I am very very thanks for all of the friends, who helps me to making living hood during the gap year. I really really appreciate it. Thank you very much. 🥰

Pros for The Gap Experience

I have more free time and then I have more free thoughts, and I start to explore the possibility of our life.

Cons for The Gap Experience

Cons are also obvious, I used to be an employee of a company, so my mindset was very simple as an engineer. So in the short term, I could not make a good living hood as before. Without the stable income, the mental pressure is very high.

Takeaway

That’s the last 6 months for the gap year. I tried to use Siri Dictation to speed up the post writing, and it’s really helpful.

Gap experience is really a great experience. But it makes me not submerge in the endless career life and company work, and it give me a really great chance to think about the life and the future.

At last, I would reference a tweet from 花果山大圣, which introduces his opinion about the hard-working and the gap experience:

It’s a long tweet thread, this is only the opening one

开个thread记录一下,为什么我以前如此坚决的反对996(不惜离职来对抗),以及这两年不上班后,我认为gap year是必要的 (哪怕俩月呢)

— 花果山大圣 (@shengxj1) July 11, 2023

Thanks for reading this non-structured post, I hope you enjoy it.

Gap Year Wrapped - Timeline

2023年9月2日 12:01

About Me

Hi! I am Zhiqiang. I am a full-stack software engineer majoring in cloud computing area. I am the maintainer of Chaos Mesh, also I am enthusiastic in any kind of open source software.

On August 31th 2022, I left my job at PingCAP and started my gap year.

I will write a series of posts to review my gap year.

Fortunately, I have history weekly-recap posts, although it definitely less frequently than weekly, it’s still very helpful to review my gap year.

This is the first one, I am going to review my gap year in a timeline, and record some important moments.

And I would write another 2 (or 3) posts, to review my gap year in different aspects.

There would NO any suggestion and advice purposes from this post, only my personal life. I would share my thoughts in later post.

Timeline

TL;DR, the timeline content might a little boring and flat, the main contents are photos with simple introductions.

I am going to reproduce the journey of my gap year in a timeline.

If you don’t want to read the whole post, you can just jump to the Summary section.

August 2022

My last day in PingCAP is August 31th 2022, which is also the birthday of Hatsune Miku.

Several interviews were in progress, majoring in SRE / DevOps, and cloud infra development.

Travel to Kunming, Yunnan.

The Wujiaying Subway Station, one of my most familiar station during the college life.

Subway Wujiaying Station

Flied a drone around Yunnan University.

Yunnan University

Yunnan University

Fei Yang TEPANTAKI, the last meal with my university roommates.

Fun & Young TEPANTAKI

Fried Potato, the my favorite snacks in Kunming.

Fried Potato

September 2022

Started the idea for a new start-up based on Chaos Mesh, but still kept interviewing. The new company’s logo inspired from “Faerie Dragon”, a naughty creature live in your infrastructure, break something but finally fix it.

Logo Inspiration

Back to the normal social activities, organized several Hangzhou Linux User Group Hacking Saturdays events:

HZLUG

Got a surprised moon cake present from Agora:

Agora Present

Travel to my hometown, Dezhou, Shandong.

Hui Meng Gong Yuan

One of my favorite home-made dishes by my mom:

Traditional Dishes made by my mom

Also here is a night-view panorama photo of my hometown:

https://photos.app.goo.gl/op9nJUHz3HrZaDXy8

And I bought my new iPhone Mini, I love this device soo much! 🤩

I think buying a new iPhone start inspire me to think more on “making good products”.

October 2022

I traveled to Yueyang this month.

I love Yueyang

Yueyanglou

I bought the Windows Dev Kit 2023, I thought it would the best ARM computing device, but I am wrong.

Both WSL and Hyper-V could NOT work well on this device. And there is no graphic acceleration API available on video codec, so I have no more usage on it.

I found that as me get fitter, I love climbing mountains more and more. I realized that working out is a very important part of my life.

November 2022

This month I complete the 4-rounds technical interview with Binance, but I got the message that they would not hire employees from China Mainland anymore. 🥲

Also we were going to stop the start-up idea, because we found that it’s hard to raise enough money at that time. So we just paused that idea.

I started to play Ingress again, and this one I joined some in-person activities, meet some new friends.

And I attended the DevJoy in Shanghai WeWork, lots of funny booth there.

Get lots of stickers. 🤣🤣

December 2022

  • Buy new Car
  • Affected by Covid-19

We bought a new car. Liangzhu Culture Village locates in rural area of Hangzhou, it’s a very beautiful place, but it’s hard to get out of here without a car. And the winter is soo cold, I think using e-bike is not a good idea anymore.

I think we got affected by Covid-19 when we are registering the car, we get in touch with soo many people these day. My girlfriend got fever first, then me 3 days after.

It’s really hard to buy medicines and covid tests these days. But very thanks to my friends, they gave me some Ibuprofen suspensions, it really helped us a lot.

We were luck we were the first batch of people who got infected, we were also the first batch of people who got recovered. After we recovered, we have a car to travel around Hangzhou. That’s kind of a little scared, there was NOT ANY PEOPLE on the street, and NO ONE in the shopping mall.

People horded foods, drinks, snacks for the next several days, lots of goods are out of stock.

January 2023

  • Spring Festival at HangZhou
  • new toy: Insta 360

We decided to stay at Hangzhou for the Spring Festival, because of the Covid-19. But we still had a great time.

I am going to share some photos and videos here, I think it’s better than words.

Please start watching at 2:10.

https://photos.app.goo.gl/cQy6FUpQTYnzFRUf7

https://photos.app.goo.gl/Q6U1B47bhw3wcsEy7

https://photos.app.goo.gl/F97iDVPWjFLSPQmt6

https://photos.app.goo.gl/x5JHDdRfUDQ5jurn6

People were getting better from Covid-19, and the city was getting back to normal.

Summary

That’s the first 6 months for the gap year. Overall, I have more activities and trips than before. And I recorded more moments, let met find that there are many different ways to enjoy life.

I do not have soo many continuous writing time, so I just post the first 6 months in this post. I would update the rest half year and other topic in the next post, about:

  • my personal finance during the gap
  • what I got and what I lost comparing to the previous life
  • products, engineering, skills
  • the plan about the future

Thanks for reading the non structured post, I hope you enjoy it.

Next Post: Gap Year Wrapped - Timeline (Second Half)

Haye AI, Llama3 and Tool Call

2024年4月22日 23:01

The Background

In the last few weeks, Caicai and me are working on the product, Haye AI, which is an in-context AI assistant.

We dedicated our part time to this product, and we are following the fancy ideas and state-of-the-art technologies to make it better.

And days ago, Meta released llama 3, which really changed something.

The New Open Source Model: LLaMA 3

LLaMA 3 is really impressive in various of aspects:

  • it supports responding in multiple languages, like Chinese. (But sometime it would respond in Pinyin, and some single words are still left in English.)
  • the overall performance is much better than LLaMA 2, closing to GPT 4
  • some online API provider provides llama 3 in extremely low cost, and fast response speed, which makes llama 3 become the most cost-effective AI model right now.

We used to use gpt-3.5-turbo as the major model for most of the tasks, with some predefined presets. I spend hours and hours to modify the prompts in the playground, and the results are not always good. Once I changed the model to gpt-4, the results are much better, but we can’t, because the cost is too high(about 10x - 15x of gpt-3.5-turbo).

So we are really happy to see llama 3, and we are trying to integrate it into our product.

Problems

There are several problems we are facing:

  • llama 3 is not natively support function calling, which is a key feature in some tasks
  • still not have reliable LLM Providers to provide llama 3 API
  • even different LLM Providers have different API, event most of them are announced as “Open AI Compatible”, but they are compatible in different ways
    • groq does not support function calling with Streaming API, which means I must manually split the tasks based on it requires function calling or not
    • deepinfra, fireworks, together just ignore the function calling in the request
    • openrouter could support function calling with stream, but it respond tool call in the content, not it the expected tool_call field, which is not following the Open AI API standard

We’re still waiting for that there would be available resources on Azure, or other big cloud provider which could let me rust the reliability. At the same time, I would like to work on the function calling feature, possibly I would build a simple layer as an LLM-Agnosticism “function calling” adapter based on “Reason - Act” prompting.

Haye AI, Llama3 和 Tool Call [CN]

2024年4月22日 23:01

BTW: 这是使用 Haye AI 的翻译功能翻译的.

背景

在过去的几周里,我和 Caicai 一起致力于开发产品 Haye AI,这是一个上下文感知的人工智能助手。

我们抽出业余时间来开发这个产品,并且我们一直追随着时髦的想法和最先进的技术,以使其变得更好。

几天前,Meta 发布了 llama 3,这真的改变了一些东西。

新的开源模型:LLaMA 3

LLaMA 3在各个方面都非常令人印象深刻:

  • 它支持多种语言的回复,比如中文。(但有时它会用拼音回复,而且有些单词仍然是英文。)
  • 总体表现比 LLaMA 2 要好得多,接近GPT 4
  • 一些在线 API 提供商以极低的成本和快速的响应速度提供 llama 3,使其成为目前最具性价比的 AI 模型。

我们过去通常使用 gpt-3.5-turbo 作为大多数任务的主要模型,配合一些预定义的预设。我花了很多时间修改 playground 中的提示,但结果并不总是好的。一旦我将模型改为 gpt-4,结果就好得多,但我们不能这样做,因为成本太高(大约是 gpt-3.5-turbo 的 10 倍 - 15 倍)。

因此,我们非常高兴看到 llama 3,并且正在尝试将其集成到我们的产品中。

遇到的问题

我们面临着几个问题:

  • llama 3不支持原生的函数调用,这是一些任务中的关键功能
  • 仍然没有可靠的 LLM 提供商提供 llama 3 的API
  • 即使不同的 LLM 提供商都宣称与 “Open AI” 兼容,但它们兼容 Open AI API 的方式也不尽相同
    • groq 不支持使用 Streaming API 进行 tool call,这意味着我必须根据是否需要 tool call 手动拆分任务。
    • deepinfra、fireworks 和 together 直接忽略请求中的 tool call。
    • openrouter 可以支持使用 stream 进行 tool call,但它直接在content中回应了工具调用,而不是预期的tool_call字段,这不符合 Open AI API 的标准。

我们仍在等待 Azure 或其他大型云服务提供商提供可靠的资源,以便我能够信任其可靠性。同时,我也希望能够开发函数调用功能,可能会基于 “Reason - Act” 提示构建一个简单的层作为 LLM 不可知的"函数调用"适配器。

2024 Week 15: Rushing Code Rushing Life

2024年4月10日 15:40

Long time no see. I was too busy to write the weekly recap in the last 4 weeks. I was too busy to do anything else. 😅

I just accumulated enough energy and wills to write this post, even it’s already 1 am.

Our family would face lots of changes in 2024, so I think it worth to record the current status of my life.

Maybe 6 months later, I would read this post and think “Oh, that was really a interesting time.” 🤣

Progress and Outcome

In the last weeks, I was making an very intensive work life NOT balance life: I worked with a full-time position, and at the same time, I was working on my product, Haye AI.

Haye AI First Commit

On the side of my full-time job, the team was asked for completing lots of features in the limited time. In the past 3 weeks we completed:

  • running javascript code as FAAS, integrated with the AI workflow
  • a chatbot platform for LLM agent
  • ComfyUI on cloud gpu

and we are prepared to take more challenges tasks in the next weeks. 🥵

On the part-time Haye AI side, we spent about 2 months to build the first public test version of the product. We are going to release the first beta version in the next week. I am very excited about it. In the last 2 months, we spent about 3 - 4 hrs per day to work on it, in other words, we just used 1 month as a full-time job to build it. And we think as we become more proficient, our efficiency will be higher. 🚀

Lifestyle

Again, that was totally NOT the WLB lifestyle. 🙅‍♂️ I run as a 9-12-7 working style.

But I am not forced to do so, I just want to do so. I feel that I have a goal to achieve, and I have a plan to make it. There is no reason but to put my best effort into it.

I was made some notes / warning like “do not coding after 10 pm”, but it was NOT followed at all. 🤪

昨天晚上又肝到一点半, 还没怎么出活

以后得给自己搞个提醒, 十点以后绝对不能写代码

写不出来, 白费几个小时
写出来了, 第二天再看跟坨💩一样

— STRRL.gpt (@strrlthedev) November 29, 2023

I dedicated on producing new things, which is great. But I did not learn enough new things, which is not good. In the last year, I realized that I need more knowledge in various domain, like business, design, economics, history, etc. I have a long list of books to read, but I did not read them. 😰

And I definitely need to take care of myself. I noticed that my health was not as good as before, on both physical and mental. My weight was increased, and I felt tired easily.️ I tried to do some exercise, but I faced the same problem: I did not have enough time. 😮‍💨

As a summary, keeping high-intensity output may have risks.

Rest / Entertainment?

I think I was mentioned that I got lost interest(aka. 电子阳痿) in video games. I discussed with my wife, and I think I found the reason: the rewards from playing game is not as high as building products. Video game was the single way that consumed my leisure time, but now I just spent it on working, with no complaint. ❤️‍🔥

That’s really weird, but that’s the truth.

I used to take the social activities as a way to relax, like “Liangzhu Crazy Thursday”. But now I feel that it is a little bit kind of time wasting. Now I only take the the afternoon part of the event, and I feel that it is enough.

Sometimes I need to drive to buy some food materials, eat at restaurants, or engage in activities, and the driving time is a great opportunity to relax. I really enjoy the time when I am driving, whether it’s listening to music or a podcast, or simply chatting with my wife. 🥰

Should I take more rest? I think I should. But how? I think I need a plan.

The Plan

I thought “I have not enough time”, but it might not be true. I think I need to make a plan to make my life more efficient.

Discipline brings freedom, but disciplines requires energy. So the basic ideas are changing the environment, building new habits to reduce the requirement of energy. Also take more training to increase the energy level.

  • Work: During the work time, I still was distracted by many things. I think I could be more focused on my work.
  • Rest: I need to make efforts on sleep regularity. And more kinds of rest.
  • Exercise, Learning, Reading: With stable daytime schedule, I should spent some morning time on these things, instead of doing them at night.
  • Entertainment: video game? I am not sure. Maybe take some time on Diablo 4.

That’s all.

2024 Week 11: Personal Updates

2024年3月13日 00:09

Okay, that started. Okay. This is the second time that I am trying to use voice recording with speech to text, technology to writing my blog. And if you found something, something is weird because, you know, this is speech to text. So there is not 100% accuracy.

I have thought about my life, my career, my income and my future plan. I still have no clear things to chase, or I did not get a really understanding about myself.

I do not know what is really I want to get, so every step in my plan or is it plan does not, maybe. Maybe, well, that’s not a aligned. That does not align with my future. So, wow. I think I should reduce all of the things, and ask myself what is really I want. What is really things that I want to taste.

I thought I have found the idea which is making new things, making products, but it’s not really… it’s not really… the answer.

I’m just confused. I was taught by traditional Chinese opinions and I just get awakened from lots of information and knowledge for the enlightenment.

I did not get ready to think about that and make a clear plan. Even I did not convince with myself to do what I am doing. I just jump into the things that I am engineering so I love building things. I just jump into it and forgot all of the other annoying stuffs. I think I should not escape anymore. I have to think about that.

And another thing about it is I do not have enough knowledge to think about the life, think about the future. So I should, I will video put more time on the input and reduce the time on the output. You know, input means reading books, read articles, thinking about the lives. And the output means working, build products.

so that’s all I think maybe after one month or two months after I will share my new opinion about my life. Yeah, that’s all.

2024 Week 5: Personal Updates

2024年2月4日 14:00

So, I haven’t updated my post for about three or four months. One reason is that I’ve discovered once I have an opportunity to focus on something, it’s really challenging to find enough time to write it down. I’ve realized that it’s very difficult to consistently maintain high energy levels. Moreover, it’s really tough to complete building products in a short span of time.

In the past three months, I’ve made progress in several areas. One of these is I got a relatively stable job position, then I launched my indie hacker career. Additionally, I’ve been applying to North American universities for a master’s degree. These tasks have been substantial enough to consume all my energy, leaving me no time to maintain routine activities like writing weekly recaps or handling accounting tasks. I feel quite regretful about this.

In the last several weeks, I’ve been working around 70 hours a week just to finish tasks, and yet there are still a lot of things to do and many new things I need to learn. It’s really tough.

So, there’s a plan. I need to have a precise and reasonable understanding of my energy levels and I should allocate this energy into different tasks. I have always put forth my “best effort” for a long time, but things just got out of under-control. I suppose it’s NOT the way it should be.

I believe I must clarify what I want to achieve. I need to determine how much time I will spend playing video games, how much time I will dedicate to building things, how much time I will allocate for learning new things, and how much time I will set aside for exercising. I think it’s essential to plan these clearly. I must always be disciplined and abide by these rules.

I have to be honest with myself - I need some time to rest, or in other words, play video games to keep me happy. Therefore, I must allocate enough time for this. If I don’t, I won’t be happy and won’t be able to maintain focus on other tasks.

Recently, I watched a documentary called Stutz, and a very interesting point from it is that all people, regardless of whether they are rich or poor, old or young, always need to face three things. The first is pain, the second is uncertainty, and the third is constant work. We can’t escape these aspects of life. However, despite this, life is beautiful and can bring happiness, even amidst pain, uncertainty, and constant work. I totally agree with this.

I remember a time when I was playing a game called Blade and Soul during my bachelor’s. After I built the final weapons in the game, I lost all motivation to continue playing it.

Many people believe that having enough money will rid them of these three things (pain, uncertainty, and constant work). However, after they attain wealth, they find that these problems do not disappear. Some may think that accumulating even more wealth will solve these issues, but that’s not the truth. Regardless of wealth, people cannot completely evade pain, uncertainty, and the need for constant work.

That’s the life, life is a journey that we should enjoy, even with the presence of pain, uncertainty, and constant work. It’s crucial to find the right methods to effectively manage these aspects of our lives.

So, I believe that in the coming days, I need to be honest with myself and acknowledge that I can’t always be a productive machine. There are many things in life that I deserve to enjoy.

2023 Week 40: Overwhelming then Keep Focus

2023年10月2日 09:54

Overview

This blog records the time span from 2023-09-18 to 2023-10-01.

Professional Stuff

Rebuild My LinkedIn Profile

Several month ago, I tried to migrate my LinkedIn Profile from China to US, but I account got banned after merge these two accounts.

哦豁.... https://t.co/3xdWzv0e9V pic.twitter.com/xRdvjIM9KX

— STRRL.gpt (@strrlthedev) April 20, 2023

I lost about all the 300 connections, also connections with certifications and badges.

🤦‍♂️ That’s so bad.

Then later, LinkedIn announced that they quit China market, and I think I could setup a new account.

So here is my new LinkedIn account:

https://www.linkedin.com/in/zhiqiang-zhou-9964a028b/

Welcome to connect with me. ❤️‍🔥

Chaos Mesh @ KubeCon China 2023

KubeCon China 2023 was hosted at Shanghai during Sept 26-29. We (Cwen, Xianglin and I) hosted the part-time booth and a Maintainer Track talk about Chaos Mesh.

I am so happy that we got lots of attention from the community, there are still several people know us and use Chaos Mesh. We share the same booth with Cilium, so I also met Bill Mulligan, the Developer Advocate @ Isovalent. We talked about the open source community and I learned some tricks about keeping the community active.

Overwhelming Stuffs, Keep Focus on One Major Thing

I used Getting Things Done to organize my project and personal tasks, it used to be efficient before I quit my job.

With many stuffs which are not attractive, and some other stuff are very attractive, I could allocate time on them properly.

But now, I have too many stuffs and ALL OF THEM ARE ATTRACTIVE, I am so confused about which one should I focus on. 😢

After talk with Ehco1996 several weeks ago, I had picked up the one major things I should focus on, and it works well so far.

My most valuable resources are my time and my energy. I could not separate them on trivial stuffs. And I realize the charming of “focusing on one thing” now.

Personal Stuff

Try Nova’s MT Car

One day night at Shanghai, I meet Nova and try his MT car.

IT IS SO COOL!

The engine sound is completely different from my car, and because of the MT, I could definitely control the power of the car. It’s AMAZING!

I drove the AT car for 1 year. I always use gas pedal to control the speed. When I want to make a overtake, I need to step the gas pedal heavy and quick to hint the AT gearbox downshift. But the MT car is different, just change a lower gear manually, and the car will speed up very quickly, with the beautiful engine sound, and with no lag. 😍

The only one thing that I still trying to adapt is “matching the engine speed with the gearbox speed”, it’s also the word “降挡补油”, It would reduce the jerking when I change the gear.

Learn Photography

After I brought the iPhone 13 Mini, I noticed that I took more and more photos. I would like to record daily life with photos, and I would like to take some beautiful photos.

Then I ready the book The School of Photography, and I learned some basic knowledge about photography.

And I was choosing devices decently. I also borrowed cameras from my friends and try them, thanks them all. 🥰

Keep Reading and Find Useful Methodology

As I just mentioned, GTD does not works well for me now, because it lacks of how to measure how I feeling about the tasks.

I am trying to find new way to keep myself happy, at the same time, keep myself productive.

2023 Week 38: Process or Product

2023年9月17日 08:44

Overview

It takes me too long time to write blogs, so I decided to use another way to write posts.

I would allocate 30 minutes to write a post, and I would not care about the quality of the post, just write it down.

If I found that the quality is not good enough, or there are no more time to express thoughts, I would use other tricks to make it better in next time.

Professional Stuff

Build a Desktop Application: Electron or Native

Recently I am preparing to build a desktop application as a developer tool. I can not make decision on which technology stack should I use.

  • My target user are developers on macOS, I have no plan to support Windows or Linux in the first stage.
  • I do not familiar with the native macOS development, but I am familiar with the web.

I asked @Tualatrix about why he keeps building native application for macOS, he said that the native application is more efficient than electron base app, and also it’s kind of belief of Apple.

I asked my self:

  • Do you think the performance of the application is important for your product?
  • Do you have faith with Apple?

For me, both answers are no.

I think web technology is enough for my product, and I do want to bring my product to all of the developers.

So I choose Electron.

Also I asked an experienced Product Manager, about this question, and he said, just use the technology you are familiar with, and change to native when you have to.

In Progress: From Hugo to Astro

I am stuck with the new theming.

I do not have good design sense for a new theme.

I should find a good spec or copy from other’s theme.

AIGC for Music

There are soo many AI products about LLM and Image Generation, but AI Product for music does not soo hot in the market.

So I take a look about the music generation tools/platforms, and I found that there are already some great products:

  • AIVA
  • Loudly
  • Soundraw
  • BandLab SongStarter

That’s the platform which I think I would use it in the future. All of the build high quality and royalty-free music.

Social Media Dame

I build a chrome extension called “Dame”, it would block the twitter and youtube.

It works well. But I am not going to use it anymore.

I found I got really panic, it seems it pouch my heart, I feel shame and guilty, and it’s really not good for my mental health.

I took an inspection with the Mental Health Section of The First Affiliated Hospital of Zhejiang University School of Medicine, the result told me I have a little bit of anxiety and mania, but not too serious. No need to take medicine, just need to do some aerobic workout and relax.

Then I decided to disable the extension.

Personal Stuff

Process or Product

That’s the major topic I want to talk about.

When I tried to use GTD system and learn about the productivity and project management, I find it led me to make the “expected outcome” at the beginning of the project.

I think it is a good way to focus, but it’s not good for me now.

It makes me scared, especially when I am not familiar with the project or the domain knowledge.

I am soo FOMO when I learning and doing something new.

So I decided to only “make the expected outcome” in my professional area.

When learning and trying new things, I just put my time and energy on it, and do not care about the outcome.

Hope it would make me feel better.

Meet ehco1996

I meet @ehco1996 in Hangzhou.

He decided to retire when he is 28.

刚和老板说我准备提桶跑路了

没想到吧,我 28 不到就退休了😗 https://t.co/BE8IQiyCcg

— Ehco (@Ehco1996) September 11, 2023

I think the most important things I learned from the conversation is, I need to keep focus.

In the last gap experience, there are soo many things take my attention, and I nearly made nothing completed.

Only one things could be done in the same time.

Liangzhu Culture Village and Apple Events

In the last several weeks, we went to Liangzhu Culture Village every Thursday.

今天疯狂星期四…不是,村民聚众写代码,正式开始。 pic.twitter.com/O53uCvXH8o

— 图拉鼎 (@tualatrix) August 24, 2023

很开心认识了 Yuhang!我们的玉鸟集「数字游民/远程工作/自由职业」基地又多了一个小伙伴。 https://t.co/kJv3VWzAn0

— 图拉鼎 (@tualatrix) August 24, 2023

又到了我们线下聚众写代码之「疯狂代码日」了。

在这里和大家分享一个好消息,我们和玉鸟集的「杭一末」联合发起了一个面向数字游民的「 我们一起办公吧」活动,目前的福利是满五单送一杯。经常去办公的同学记得下单时出示本海报集单。

PS:海报里的五位同学由我们本色出演,猜猜我是哪个。 pic.twitter.com/iQpGdeyK5z

— 图拉鼎 (@tualatrix) August 31, 2023

今天有点严肃,感觉大家在用代码谈判。 pic.twitter.com/ZfSKadO5Xf

— 图拉鼎 (@tualatrix) August 31, 2023

今天和两个播客节目的几个朋友都见面畅聊了。

分别是:枫言枫语的 @MapleShadow@hzlzh,硬地骇客的 @skoowfancy@anson0370

还有其他新朋友。地点在我们的玉鸟集根据地。真是开心的一天! pic.twitter.com/irRx7B6iqW

— 图拉鼎 (@tualatrix) September 4, 2023

And we also attend the Apple Event Watch Party in Yuniaoji! There are lots of good memories.

开心,和六十多个新老朋友顺利看完了 2023 Apple 秋季发布会🥰也为下次我自己搞产品发布积累了经验。大家下回见! pic.twitter.com/j3jEZKsTAn

— 图拉鼎 (@tualatrix) September 12, 2023

Steam Deck

I borrowed a Steam Deck from pseudo_yu, it’s really a great product!

I would not consider to buy the windows gamepad after I tried the SteamOS.

Plaid Speed!

之前没注意,现在发现无人深空的脉冲引擎特效就是 Plaid Speed

(Tesla S Plaid 的那个 Plaid pic.twitter.com/6aTwfEnBMp

— STRRL.gpt (@strrlthedev) September 16, 2023

Get a Hair Cut

I got a hair cut for the marriage certificate photo.

Also pseudo_yu and Hwang got a hair cut too.

新文章:「周报 #46 - 告别长发、周报初心与合约开发」

暂剪去了长&蓝发,也算是近期最大的变化了;写了一篇自己很喜欢的关于知识系统搭建的文章;重新思考了自己写周报的初心;可能有机会写一本技术书籍,期待却也忐忑;还有很多有意思的事。https://t.co/4c4iDGE6s5

— pseudoyu (@pseudo_yu) September 13, 2023

长头发嘎了,需要换头像吗🙃

— Hwang (@hwwaanng) September 16, 2023

I would bring it back in the next 2 years!

At the end

It still took me about more than 1 hr to completed this post.

I think I need to practice more.

Oh, about the “gap year wrapped” series, I would update the new post in the next week. 😋

What I am Chasing

2023年8月19日 13:02

Honestly, I do not know

I have to grant that the gap-year would really consume the ambitions. On the days I just left the PingCAP, I sent lots of resumes to companies to get a job, even I have some unrealistic dreams that I (we) build a new start-up based on Chaos Mesh. But now, what I want is only having a good sleep everyday, then enjoying everything that I do.

Rather than call it ambition-consuming, it’s better that I finally realize that there are lots of tiny happiness could be found in daily life. When I cooking, I enjoy the hot oil splash on my arm, it’s heart but it’s new experience. When I eating, I feel each fiber inside of the vegetables cracked by my teeth. When I resting, I feel the breeze flow under my hand, and the warm sunlight spread on my body.

What I chased before

I failed to figure out what I chased before.

I did not work for lots of money, and I do not clear about what could I do in the next several years. What I did was just follow “what I could do” or “it seems interesting”.

  • Java CRUD at Bangsun Tech, I could do that.
  • SRE at WeiDian, I could do that.
  • Build Chaos Mesh at PingCAP, I could do that, and it seems interesting.

Future Plans

Well, I think lacking of long-term plan is not a big deal. And I have some interest on the following things:

  • Personal Finance
  • Build and Design Product

That’s all, I think.

2023 Week 32: Ordinary Days x 3

2023年8月12日 16:11

Overview

It’s so awkward that I still no back to the regular weekly recap. 😅

And there are still no many things recorded in Journal since last weekly recap written.

Professional Stuff

New way to build User Interface: Chat Bot

I always stuck with drawing UI.

I have made some bad UI design like these:

I was struggling with the UI design, the layout, typography, color, animation, etc.

Until recent days ago, when I was using the Telegram “Saved Message”, I just realized that the chat bot is another good way to build the User Interface.

I think I would revive the “GTD Buddy” project and build it as a chat bot, that’s a dedicated, fully guided, and interactive GTD assistant.

In Progress: From Hugo to Astro

I found that the new static site generator, Astro, is very powerful and flexible, I think it would be a good replacement for Hugo, and I rather became locked-in with the new Astro framework.

For me, the content is the most important thing in blog, but the appearance is also a big influence for my writing experiences.

There are lots of blogs which have different styles but all of them are beautiful:

I have no idea on making a beautiful blog, also no idea on graphic designs.

I just have some preferred features before, like:

  • embed twitter / youtube / link as a card
  • og protocol supports
  • better code block
  • better image preview

The initial reason I want to switch to Astro is that I found that Astro could build integration with lots of different frontend frameworks, like React, Vue, Svelte, etc.

And the building system is also flexible and pluggable, I have resolved the issue of “Image Relative Path in Markdowns” by making a custom plugin.

Although Astro is a framework, not a library, I have seen that its power. I think I could accept that trap myself into its ecosystem.

Personal Stuff

Discord is not good as a “Saved Message”

Discord is a Electron App, it’s slow to open, and sometime it automatically install updates. It really takes more time than open telegram and paste the link to the “Saved Message”.

Telegram always be native apps for different platform, it’s very very fast to open.

The same thing also happens on Notion, that’s another reason I found that I have came to rely on the “Saved Message” in telegram but not “GTD / Capture” in Notion.

Discord has a limitation on upload file size, free user could only upload file with size up to 20MiB, and with Nitro, it would be (Some number in MiB, I forgot). For my use case, a PDF doc might be up to several dozens of MiB, and video would be hundreds of MiB. It’s so limited.

IIRC, free user in Telegram could upload up to 2 GiB file, and with Telegram Premium, it would be 4 GiB. That’s enough for my personal usage.

So I am going to move my “Saved Message” from Discord back to Telegram.

The only one thing that Telegram does not do it well is “full text searching in Chinese”, and it has been a long time since the telegram community report it. ☹️

For me, I think here is another solution for that, it relates to the above topic, “GTD Buddy”, I would integrate the chat bot and Notion Storage, using the searching capability of Noiton.

I broken my left ankle

Yeah.. That’s really hurt. 🥹

给大家看看崴到的角,很神奇,疼的地方不紫,紫的地方不疼 https://t.co/cWxeDwIdKB pic.twitter.com/8U8Pmvh5Bh

— STRRL.gpt (@strrlthedev) July 19, 2023

It was 3-4 weeks ago, it does become better, but I still not fully recovered from that damage.

And I walked soo much in the past 2 weeks, for looking around new office with Kevin, and touring west lake and markets with my mom.

Travel to Shenzhen and Hong Kong

I traveled to Shenzhen to meet one of my university classmate. She worked as an audio engineer in Tencent, Timi Studio, but she got the message that she would be “graduated” from the company. Then we cancelled the plan to tour around the Hong Kong, we just stayed in Shenzhen for 2 days, and I came back to Hangzhou earlier than planned.

The one main purpose to go to Hong kong is open an account from any Hong Kong bank. I applied for ZA Bank, Ant Bank and HSBC One. The process is kind of smoothly, I does not get rejected, but I am still waiting fot the physical card to be delivered to Hangzhou.

I also meet Jie and Innei in Hong Kong, we ate McDonald’s and talked a lot. 🥰🥰

Properly Positive Feedback and Comfort Zone

2023年7月17日 17:11

In last few weeks since I completed the TOEFL test, I do not learn English anymore. And I also break the plan in gym with the coach.

I am avoiding the potential things that makes me unhappy, but it is the thing makes me unhappy in the long term.

Anxious people live in the future, regretful people live in the past. I DO live in present, I fell happy, but I am fear about the future.

Recently I only do the thing that makes me happy in the short term, like playing games, and building some side-projects, like Cloudflare Tunnel Ingress Controller and Dejavu. It makes stay at the Comfort Zone, and I just lost the passion to spend time on learning new things, like finance, economics, English, and body building.

It’s time for me to find the way to spoof the brain, and make me some good habits.

I need find some goog positive feedback / reward as the short term motivation.

2023 Week 28: Ordinary Days x 2

2023年7月9日 10:39

Overview

I want to back to write the weekly recap regularly.

No need content-rich post, just record what happened.

Professional Stuff

Project Benefit on KubeCon: Maintainer Track and Kiosk

We (Chaos Mesh Maintainers) have submitted the application form for Maintainer Track and Offline Booth(Kiosk) on KubeCon China 2023 in Shanghai. If everything goes well, we would have a presentation and a part-time booth here.

We are also planning the Maintainer Track part for KubeCon NA 2023. We asked Saiyam to participate in, and he agreed. He also suggested us make a micro-survey to collect some voice from community.

All in all, see you in Shanghai!

Idea: Spirit Toad

As you might already know, I am considering walking into the Apple Developer Ecosystem. Following “learning-by-doing” principle, I would make one or several simple apps to get familiar with the ideation, design, development, and release process.

So that is my simple idea that could become my first app: Spirit Toad.

中文名: 十全灵蛤蟆

The idea is came from a TV series called “少年大欽差”, here is the cut.

Spirit Toad

Here, that’s a Spirit Toad. There is another male one in my bag. After I find the boy, I would squeeze the male one, and this female one would also make a sound.

The business of the app is quite simple: the application would always used in pair, hit the button on one device, and the other device would make a sound / receive a notification.

I would start at making an iOS app, then move forward to other platforms.

Also I think I would publish it on App Store, walk through the whole process.

Idea: Deja-Vu, an Open Source Alternative to Rewind.ai

Several days ago, I tried to start using Rewind.ai as the powerful tool to record my dataflow on personal computer.

But Rewind.ai has some limitations:

  • Limited “Rewind”(Search data from recording) Usage.
  • NOT available on other platform.
    • I am a linux user and all my major process happens on linux!
    • and I do not want to use mac as the primary device.

The maker of Rewind.ai said that the power of Apple Silicon could make the recording and OCR process much efficient. But I think it is possible to make a similar tool on a more general computer, without certain devices like Apple Silicon or Nvidia GPU.

So I created an Open Source project called Dejavu. Want to do it with existed open source tools.

I am still working in proof-of-concept stage, and it works well for now! It’s quite simple for now:

  • Capture screenshot every 2 seconds.
  • OCR the screenshot and save the text.
  • use sqlite with Full-Text-Search extension to store and index the text.
  • Query API for the text.

Personal Stuff

I bought an Apple Watch

As just what I said in the last post, I would finally and fully fall into the Apple Ecosystem.

I stopped using my Samsung Watch 4, and bought an Apple Watch S8.

Also I started to subscribe the Apple Fitness+. Even Samsung have all the competitive alternative solution, and event some of them is free, I even would not to try it.

Because the Z flip 4, the cell phone I used, is not good as I expected. I would never buy a Samsung phone again.

For people who want to buy a foldable phone, my suggestion is: Don’t buy, and wait for the Apple product.

Diablo IV Classes

I have tried all the classes expect Barbarian in Diablo IV, and I finally I still like the rogue most.

The first Season of Diablo IV is coming at June 21, and I think I would choose the Rogue as my first class for progression, and maybe try Barbarian later.

And, Necromancer is the most powerful class now, that’s totally out of our expectation at the start of the game.

Summary

So that’s the sudden end, just tell some stories, no more stress to make it content-rich and good looking.

2023 Week 24/27: Long Live With Apple

2023年7月4日 10:53

Overview

This is the weekly recap post spans from May 21 to June 16, 2023.

This post might be longer than usual, because I do NOT spend much time on preparing language tests. 🤡 Instead, I spent lots of time on social activities and playing video games. 😅

So there are lots of things to write down.

Actually, I’m almost exhausted just listing these things on titles. 😵

Here we go.

Professional Stuff

New Idea: Cloudflare Tunnel Ingress Controller

TLDR; I build a Kubernetes Ingress Controller which could expose the Kubernetes Ingress to the Internet,

  • easily, quickly, and securely
  • without requiring a public IP address
  • without maintaining any Tunnel / Jump Server (like frpc, zerotier, tailscale)

I have a homelab, which contains 4 x86/arm computing devices and 1 storage device. And I use Kubernetes for manage and orchestrate workloads.

The networking model in Kubernetes is complex, there are several different kind of networks:

  • Host Networking, the real network for the Control Plane host or Worker host
  • Pod Networking, the virtual/real network for Pods, usually a virtual overlay networking, which only accessible on Layer 3 (IP Layer)
  • Service Networking, the virtual network for Services, usually virtual IP addresses, and bunch of iptables / ipvs rules.

For exposing a workload running in Kubernetes to the Internet, a system administrator need to understand all these networking, and all of them must be configured correctly.

I used to use:

  • Cilium CNI as Pod Networking
  • MetalLB as Service LoadBalancer
  • Nginx Ingress / Traefik Ingress as Ingress Controller

Then I have DNS records like:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

$ dig nodes.worker.kiu.strrl.cloud              

; <<>> DiG 9.18.15 <<>> nodes.worker.kiu.strrl.cloud
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2408
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;nodes.worker.kiu.strrl.cloud.  IN      A

;; ANSWER SECTION:
nodes.worker.kiu.strrl.cloud. 30 IN     A       192.168.1.207
nodes.worker.kiu.strrl.cloud. 30 IN     A       192.168.1.203
nodes.worker.kiu.strrl.cloud. 30 IN     A       192.168.1.154
nodes.worker.kiu.strrl.cloud. 30 IN     A       192.168.1.184

;; Query time: 163 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Tue Jun 20 09:36:20 CST 2023
;; MSG SIZE  rcvd: 121

So I could use any of these IP addresses to expose a HTTP service locally, like this:

1
2

curl --insecure -v -H Host:jellyfin.strrl.cloud https://nodes.worker.kiu.strrl.cloud

And I use Cloudflare Tunnel to expose these service to the Internet.

With this solution, I need to manually configure the Cloudflare Tunnel for each domain, and the ingress layer (traefik ingress) is actually not needed.

I imagine that maybe I could use cloudflared as a Ingress Controller directly, and I found that:

cloudflare/cloudflare-ingress-controller

It’s the official Cloudflare Ingress Controller, but it is not maintained for a long time, and it’s not working with the latest version of Kubernetes.

So I built the successor of it:

STRRL/cloudflare-tunnel-ingress-controller

I have used it to expose my several services to the Internet, and it works well for a while. Great!

Package on AUR: larksuite-bin

For some reason, I need to use Lark Suite, which is a International version of Feishu. I installed the latest feishu-bin from AUR, but Feishu noticed me that I can NOT use Feishu as Lark. Then I noticed the larksuite-bin on AUR has been marked as outdated.

Fortunately, I did explore the feishu-bin package before, I think I could package a new version for larksuite-bin.

Actually, the maintainer of feishu-bin on AUR is an ex-colleague of mine, also an old friend from Hangzhou Linux User Group. 😄

Then I sent a email to the current maintainer of larksuite-bin on AUR, for asking me as the co-maintainer:

Email

So the final result is I became the maintainer of larksuite-bin on AUR now, and I upgraded the package to the latest version.

年轻人的第一次更新 AUR ( pic.twitter.com/hZJZiYRRHt

— STRRL.gpt (@strrlthedev) June 15, 2023

Great!

Summer OSPP Hangzhou

I attended the Summer OSPP Hangzhou, and giving a lighting speech:

Slides: https://docs.google.com/presentation/d/1PUwXGVGcI6Ibk_FcFBqwFYnMfcAxNYX3QT_IyxsGtFQ/edit?usp=sharing

Chaos Mesh on KubeCon China 2023

KubeCon finally come back to China, the previous one was still held before the COVID-19 pandemic.

I have applied for a offline booth for Chaos Mesh, as the benefit of being a CNCF Incubating project.

So, I will be there, welcome to visit our booth, and talk with us!

Onboarding WebP Cloud Service

Nova asked me to try his new service, which is a WebP Cloud Service.

This site has been configured with that service, and it really reduces the size of images, and speeds up the loading.

I have posted another article about this service, take a look if you are interested:

http://strrl.dev/post/2023/speed-up-image-loading-with-webp.se/

Personal Stuff

Apple WWDC

There are soo many new software features announced on WWDC, and I am so excited about them:

  • NameDrop, it’s so cool to exchange the contact, but it’s not available in current beta version.
  • Offline Map, it’s useful, but it’s not available in China.
  • CheckIn in Message app, it’s also an amazing feature, I always share my location and direction to my girlfriend, and check-in would enhance it. But it’s also not available in China now.
  • Mental Health! I have used it for several days, as the objective reflection of my mood.
  • Journal! I want the Journal App so much! The AI generated daily summary is so cool! It would be reflection and summary for my life!

I am thinking about buying iWatch instead of my current Samsung Watch, and fully use the Apple Ecosystem.

I researched / explored lots of solutions and methodologies to make me happy and improve the productivity, and I think Apple Ecosystem would help me to achieve them.

Meet with Friends

🍞

🍞 is a young but professional front-end developer. We have 3 meals together, and talked a lot about the engineering, technology, and life.

I am so impressive about his passion about the engineering, I have saw the bright future of him.

Teacher 🐟

We came to a Piano Cafe one day afternoon, and played a KAWAI Grand Piano. (Or Steinway? I did not remember.)

🍖
🔥

梅开二度 https://t.co/Kiut08542x pic.twitter.com/9JRaxJeT2o

— STRRL.gpt (@strrlthedev) June 14, 2023

The key of Grand Piano is even much lighter than my digital piano, YAMAHA P115.

I took some sheet books for some Game Original Soundtrack, like NieR and Monster Hunter. Teacher 🐟 played them as sight-reading, that’s so impressive!

TualatriX

TualatriX is a professional iOS developer and also a freelancer, we are both villagers in Liangzhu Culture Village.

The first time we meet each other was introduced by Lakr. We have a lunch together, and we talked and coded at the Starbucks for a whole afternoon.

今天认识了几个新朋友,大家一起占领了村里的星巴克的大桌,边晒太阳、边聊天、边写代码,很开心。

傍晚时天空也非常美。 pic.twitter.com/Ge2yyx1aEt

— 图拉鼎 (@tualatrix) May 23, 2023

He also taught me some SwiftUI stuff, and I am so impressive about that, the declarative way to build the UI!

pseudoyu

We came to the Rokid company’s activity, which is watching WWDC 2023 together. We tried the unreleased AR devices, it’s not kind of great experience, but it’s still cool.

久违的收到神秘蛋糕的生日仪式感;和 @strrlthedev 哥哥参加线下活动、尝鲜 AR 眼镜和闲聊一晚,还被他超帅的初音痛车送回家(四舍五入生日第一秒是初音陪我过的);终于见到了偶像开发者 @tualatrix;以及即将开始的 WWDC23。

不错的开端,新的一年大概会是个好年吧。 pic.twitter.com/fQsrbsQLlD

— pseudoyu (@pseudo_yu) June 5, 2023

Xiaowen

Xiaowen and I meet also at the Liangzhu Culture Village, we have a dinner in the “甘其食 Baobao 小酒馆”.

感慨一下年轻真好🫠 https://t.co/xBbv89JACe

— Xiaowen (@ixiaowenz) June 22, 2023

I learned something about recording personal cash flow and budget management, he also mentioned a good application called “you need a budget”. And he also suggested me to get some knowledge about the CFA I certification, it would cover the basic economics and finance knowledge as a bachelor degree.

Game: The Legend of Zelda: Tears of the Kingdom

Great Game! I have cleared the main story when I wrote this post.

And there are still lots of funny content like these:

Game: Diablo IV

Another Great Game! I have played 4 different classes, and it consumed me most of the gaming time in the past several weeks.

I also extended my friend list on battlenet, it’s great to see lots of friends playing this game at the same time.

I also streaming my game play on youtube, and here is the recording:

https://www.youtube.com/playlist?list=PL2CnjpVBS-U9sBtUAut_d1g0xj6jw9wcQ

At last

It have been too long from last updates, I need to find a new way to build the weekly recap, or it consumed too much time to write it.

Unlocking the Power of Cloudflare Tunnel: Secure, Scalable, and Simple Kubernetes Ingress Controller Implementation for Your Applications

2023年6月30日 14:51

This post was assisted by ChatGPT and Grammarly.

Introduction

Today, more and more teams are adopting cloud computing and cloud native technologies. However, exposing applications to the Internet is still a challenge. We should always consider the security, scalability, also performance of the solution. And the complexity from different cloud providers makes it even harder, tons of products and services are available, it’s going to be a nightmare to choose the right one.

Cloudflare Tunnel give users a secure way to expose applications to the Internet with the minimal attack surface. It’s also easy to use, and it offers free plan to individuals.

Kubernetes is the most popular container orchestration system, it’s also the de facto standard for cloud native applications. Kubernetes has a built-in Ingress Resources for exposing applications to the Internet, but it’s not enough. We need an Ingress Controller to implement the exposing logic. There are many Ingress Controllers available, which also increase the complexity of the solution.

In this post, I will introduce a project, Cloudflare Tunnel Ingress Controller, that combines Cloudflare Tunnel and Kubernetes Ingress Controller to provide a secure, scalable, and simple solution for exposing applications to the Internet. Even though it’s still in the very early stage, it’s still usable and I’m using it in my homelab.

GitHub - STRRL/cloudflare-tunnel-ingress-controller: 🚀 Expose the website directly into the internet! The Kuberntes Ingress Controller based on Cloudflare Tunnel.

🚀 Expose the website directly into the internet! The Kuberntes Ingress Controller based on Cloudflare Tunnel. - STRRL/cloudflare-tunnel-ingress-controller

Continue reading...

It’s not an official project from Cloudflare. And there did exist an official project from Cloudflare, Cloudflare Ingress Controller, but it does not works and the community is not active anymore.

Use Cases and Examples

Imagine that you are working with Kubernetes, and

  • you are working on a project, and you want to share it to your colleagues for collaborating, like profiling or debugging;
  • or you just finished a proof of concept, and you want to show it to others quickly;
  • or you have some self-hosted services, and you want to expose it to the Internet.

Using Cloudflare Tunnel Ingress Controller, you could expose your applications to the Internet very easily, and it’s secure, scalable, and simple. Only create a Kubernetes Ingress Resource, and the Ingress Controller will do the rest.

You could follow the Get Started section to try it out, bootstrap a local minikube Kubernetes Cluster, then expose the Kubernetes Dashboard to the Internet.

Also you could take a look on this video to see how smoothly and easily it works:

Benefits

Easy-to-use; Only create a Kubernetes Ingress Resources, and the Ingress Controller will do the rest. No more complex service and products from different cloud providers.

Cloud-agnostic; It works with any Kubernetes Cluster, no matter it’s on-premises or in the cloud, no matter it’s managed or self-hosted.

Other benefits from Cloudflare Tunnel; You could leverage the experience by Cloudflare, like Full TLS encryption on Internet, also no need to manage certificates, no need to have a public IP, no need to expose ports, no need to manage firewall rules, no need to manage DNS records, etc.

Conclusion

For individual developers, homelab fans and small teams, Cloudflare Tunnel Ingress Controller is a great solution for exposing applications to the Internet. Just give it a try! And it’s also a Open Source project, contribution is always welcome!

使用 WebP Cloud Services 加速图片加载

2023年6月16日 09:52

这篇文章是由Notion AI协助完成的.

你可能已经注意到了, 我博客上的所有图片都是从webp.strrl.dev加载的.那么, 它到底是什么呢?

我的故事

我在strrl.dev上写作和发布文章.为了使故事更加生动有趣, 我经常包含图片、画布或贴纸.

然而, 我的手机上的原始图片可能有几兆字节大小.此外, 我有时会录制GIF来介绍交互, 这也可能导致文件大小过大的问题.

Nova告诉我他们提供的一项服务可以作为中间层来缩小图像大小.

什么是 WebP Cloud Services?

这是一项云服务, 可以通过提供现代图像格式的图片来加速网站的加载时间.

WebP Cloud Services 可以在哪些地方使用?

这项服务可以用于任何关心以下问题的网站:

  • 加载速度, 和/或
  • 减少网络数据流量使用.

为什么使用 WebP Cloud Services?

因为它可以真正减少图片的大小和加载时间.

对比

之前:

Untitled

之后:

Untitled

完整报告:

如何使用 WebP Cloud Services?

我使用hugo生成我的博客, 通过Hugo“Markdown Render Hooks”, 我可以自定义渲染图像的方式.所以我只需替换图像的URL.

请按照 https://docs.webp.se/webp-cloud/access/ 上的文档, 以各种方式将其与您的网站集成.

❌
❌