2025年7月20日 星期日

Install your development environment with WSL in windows 11

Read it before install WSL

  • Install your windows terminal & recommended system Fonts
    • https://github.com/doggy8088/best-wsl-ubuntu-setup

Install from PowerShell

  • List all the distros of WSL

    wsl --list --online
  • support distros (2025/07/20)

    NAME                            FRIENDLY NAME
    AlmaLinux-8                     AlmaLinux OS 8
    AlmaLinux-9                     AlmaLinux OS 9
    AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
    AlmaLinux-10                    AlmaLinux OS 10
    Debian                          Debian GNU/Linux
    FedoraLinux-42                  Fedora Linux 42
    SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
    SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7
    Ubuntu                          Ubuntu
    Ubuntu-24.04                    Ubuntu 24.04 LTS
    archlinux                       Arch Linux
    kali-linux                      Kali Linux Rolling
    openSUSE-Tumbleweed             openSUSE Tumbleweed
    openSUSE-Leap-15.6              openSUSE Leap 15.6
    Ubuntu-18.04                    Ubuntu 18.04 LTS
    Ubuntu-20.04                    Ubuntu 20.04 LTS
    Ubuntu-22.04                    Ubuntu 22.04 LTS
    OracleLinux_7_9                 Oracle Linux 7.9
    OracleLinux_8_10                Oracle Linux 8.10
    OracleLinux_9_5                 Oracle Linux 9.5
  • Install ubuntu 24.04

    wsl.exe --install Ubuntu-24.04
  • Move the installed WSL to another driver

    wsl --shutdown
    wsl --manage Ubuntu-24.04 --move D:\WSL\
  • Install docker, NOT docker desktop

    • https://blog.miniasp.com/post/2025/06/14/How-to-remove-Docker-Desktop-and-install-Docker-Engine-on-Windows-with-WSL-2
    # download installation script
    # https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script
    curl -fsSL https://get.docker.com -o get-docker.sh
    
    # in this step, the system will show a tips to let you install docker desktop.
    # Do not press any key, just waitting it to install docker-engine
    sudo sh get-docker.sh
    
    # Add your account to docker group
    # Manage Docker as a non-root user
    # https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user
    sudo usermod -aG docker $USER
    
    # check the installed version
    docker --version
    docker compose version
  • Install vs code

    • code-insiders

      code-insiders .
    • vs code stable

      code .

For aws development

  • Install go-lang

    sudo apt install golang-go -y
  • Set go environment path

    • https://go.dev/wiki/SettingGOPATH

      export GOPATH=$HOME/go
      export GOBIN=$HOME/go/bin
      export PATH=$GOBIN:$PATH
  • Install assume-role

    • https://github.com/remind101/assume-role

      go install github.com/remind101/assume-role@latest
    • for bash

      function assume-role { eval $( $(which assume-role) $@); }
    • for zsh

      alias assume-role='function(){eval $(command assume-role $@);}'

2025年6月15日 星期日

Setting Up Your Environment for Vibetest-Use

This guide will walk you through the process of setting up your environment to use vibetest-use, a tool that appears to be designed for website testing using AI agents. We'll cover everything from cloning the repository to configuring the necessary components.

Step 1: Get the Code

First, you need to get the source code. You can do this by cloning the repository directly, or by forking it to your own GitHub account and then cloning your fork.

  • Clone the repository:

    git clone git@github.com:browser-use/vibetest-use.git
  • Or, fork the project on GitHub and then clone your forked repository.

Step 2: Python Environment Setup

vibetest-use requires Python 3.12 or newer. Here's how to set it up on a Debian-based Linux distribution:

  1. Add the deadsnakes PPA to your system's software sources:

    sudo add-apt-repository ppa:deadsnakes/ppa
  2. Update your package list and install Python 3.12:

    sudo apt update
    sudo apt install python3.12 python3.12-venv -y
  3. Create and activate a virtual environment:

    mkdir venv
    python3.12 -m venv venv
    source venv/bin/activate

Step 3: Install Vibetest-Use

With your virtual environment activated, you can now install vibetest-use and its dependencies.

  1. Upgrade pip:

    pip install --upgrade pip
  2. Install uv (a fast Python package installer):

    pip install uv
  3. Install vibetest-use in editable mode:

    uv pip install -e .

Step 4: Setup the MCP Server in Roo Code

A key part of the setup is configuring the Model Context Protocol (MCP) server. MCP allows AI models to access external tools and data, extending their capabilities. This video provides a detailed tutorial on how to set up an MCP server in Roo Code:

You'll need to configure the MCP server in your Roo Code settings. Make sure to check the command path carefully. If your virtual environment is in a folder named venv, the path in the configuration should reflect that.

{
  "mcpServers": {
    "vibetest": {
      "command": "/full/path/to/vibetest-use/venv/bin/vibetest-mcp",
      "env": {
        "GOOGLE_API_KEY": "your_api_key"
      }
    }
  }
}

What is MCP?

For a deeper dive into what MCP is and how it works, you can refer to this article: post/3k2Nrx

Running the MCP Server

The following is a sequence of commands that might be run during the process of setting up and running the vibetest-mcp server. This gives you an idea of the workflow:

(venv)   vibetest-use python -m vibetest.mcp_server
(venv)   vibetest-use git:(main) pip install .
(venv)   vibetest-use git:(main) python -m vibetest.mcp_server
(venv)   vibetest-use git:(main) vibetest-mcp
(venv)   vibetest-use git:(main) playwright install
(venv)   vibetest-use git:(main) playwright install-deps
(venv)   vibetest-use git:(main) sudo apt-get install libnss3 libnspr4
(venv)   vibetest-use git:(main) vibetest-mcp

Example Prompt

Once everything is set up, you can start using vibetest-use with prompts like this:

Reference

  • VibeTest
    • https://github.com/browser-use/vibetest-use
  • Configuring MCP Servers in RooCode
    • https://docs.roocode.com/features/mcp/using-mcp-in-roo/
    • https://youtu.be/QDy3dm1xJ6Y
  • MCP
    • https://www.anthropic.com/news/model-context-protocol
    • https://modelcontextprotocol.io/introduction
    • https://codelove.tw/@tony/post/3k2Nrx
    • https://ikala.ai/zh-tw/blog/ikala-ai-insight/what-is-model-context-protocol-mcp/
    • https://github.com/modelcontextprotocol/servers/tree/main

2020年9月30日 星期三

Install & Setup SoftEther VPN Server on ubuntu LTS 20.04

SoftEther VPN

Installation

install on ubuntu

  • install openssl(1.1.1g)
~$ wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
~$ tar xzvf openssl-1.1.1g.tar.gz
~$ cd openssl-1.1.1g
~$ ./config
~$ make
~$ sudo make install

~$ sudo ldconfig

~$ openssl version -a
  • install build essential(gcc)
~$ sudo apt-get update 
~$ sudo apt-get install build-essential
  • download & install softether vpn server(v4.35)
~$ wget https://www.softether-download.com/files/softether/v4.34-9745-rtm-2020.04.05-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz

~$ tar xzf softether-vpnserver-v4.35********.tar.gz

~$ cd vpnserver
~$ make
~$ cd ..
~$ mv vpnserver /usr/local/

~$ cd /usr/local/vpnserver/
~$ chmod 600 *
~$ chmod 700 vpnserver
~$ chmod 700 vpncmd

install vpnserver as a service

  • create a service file as following
[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
ExecStartPost=/bin/sleep 0.1
Restart=always
RestartSec=30
KillSignal=SIGQUIT
StandardError=journal
NotifyAccess=all
KillMode=mixed

[Install]
WantedBy=multi-user.target
  • move to /etc/systemd/system/vpnserver.service

  • Enable the service so that it starts automatically when the system boots.

~$ sudo systemctl daemon-reload

~$ sudo systemctl enable vpnserver

~$ sudo reboot

Configure SoftEther VPN Server

SoftEther VPN Server configure concept

  • Two level admin privilege

  • Entire VPN Server admin

    • Create VPN Server password
      • ServerPasswordSet
    • view server info
      • ServerInfoGet

    • create virtual hub
      • HubCreate ${hub_name} [/PASSWORD:${password}]
  • Virtual HUB admin

    • configure hub password
      • SetHubPassword

    • list existing user & create VPN user account/password
      • UserList
      • UserCreate ${account}
      • UserPasswordSet ${account}
    • enable IPSec (L2TP VPN required)
      • Server admin privilege is required
      • IPSecEnable
    • enable DHCP (L2TP VPN required)
      • DHCPEnable
    • enable secure NAT (L2TP VPN required)
      • SecureNatEnable
    • view connected client info
      • IPTable
    • get session info
      • SessionGet

configure with cli

~$ sudo /usr/local/vpnserver/vpncmd
  • configure step 1
    • select 1
vpncmd command - SoftEther VPN Command Line Management Utility
SoftEther VPN Command Line Management Utility (vpncmd command)
Version 4.34 Build 9745   (English)
Compiled 2020/04/05 23:39:56 by buildsan at crosswin
Copyright (c) SoftEther VPN Project. All Rights Reserved.

By using vpncmd program, the following can be achieved.

1. Management of VPN Server or VPN Bridge
2. Management of VPN Client
3. Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool)

Select 1, 2 or 3:
  • configure step 2
    • press Enter - Don't need to key-in anything.
Specify the host name or IP address of the computer that the destination VPN Server or VPN Bridge is operating on.
By specifying according to the format 'host name:port number', you can also specify the port number.
(When the port number is unspecified, 443 is used.)
If nothing is input and the Enter key is pressed, the connection will be made to the port number 8888 of localhost (this computer).
Hostname of IP Address of Destination:
  • configure step 3
    • Entering server admin
      • press Enter - Don't need to key-in anything.
    • Entering virtual HUB admin
      • key-in the HUB name, and press Enter
Connection has been established with VPN Server "localhost" (port 443).

You have administrator privileges for the entire VPN Server.

VPN Server>
If connecting to the server by Virtual Hub Admin Mode, please input the Virtual Hub name.
If connecting by server admin mode, please press Enter without inputting anything.
Specify Virtual Hub Name:
  • configure step 4
    • In server manage mode, your can enter the Virtual HUB with following command
    • HUB ${hub_name}
VPN Server>hub vpn
Hub command - Select Virtual Hub to Manage
The Virtual Hub "VPN" has been selected.
The command completed successfully.

VPN Server/VPN>

references:

2020年4月3日 星期五

Customize your own Django authentication decouple with the models.py

For many systems, authentication mechanisms may already exist, especially for systems that are authenticated by an OAuth server.
In this article, I want to customize Django authentication without creating any user model...

2018年9月16日 星期日

[Android] Stored your customized data object in Spinner with Kotlin

If you want to make the list of your customized data objects be stored in Spinner. Try this...

Step:
      1. write your own data class
      2. override the toString() method of your data class
      3. add it to mutable list
      4. write on onItemSelected listener
      5. get selected item, and retrieval the object of your data class