Category Archives: Uncategorized

Cum sa folosesti Mistral Vibe pe Windows

Scriptul de instalare este facut doar pentru linux sau mac, dar e foarte usor de modificat sa mearga pe windows cu cygwin. Am facut eu aceasta modificare (bine, nu e, dar na), si il puteti utiliza fara probleme.

#!/usr/bin/env bash

# Mistral Vibe Installation Script
# This script installs uv if not present and then installs mistral-vibe using uv
# Includes support for Linux, macOS, and Cygwin/MSYS environments

set -euo pipefail

# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

ORIGINAL_PATH="${PATH}"

function error() {
    echo -e "${RED}[ERROR]${NC} $1" >&2
}

function info() {
    echo -e "${BLUE}[INFO]${NC} $1"
}

function success() {
    echo -e "${GREEN}[SUCCESS]${NC} $1"
}

function warning() {
    echo -e "${YELLOW}[WARNING]${NC} $1"
}

function find_command_in_path() {
    local cmd="$1"
    local path_value="$2"
    PATH="$path_value" command -v "$cmd" 2>/dev/null || true
}

function print_missing_path_instructions() {
    local executable_name="$1"
    local executable_path="$2"
    local bin_dir
    bin_dir=$(dirname "$executable_path")

    warning "Installation completed, and '$executable_name' was installed at: $executable_path"
    error "Your PATH does not include the folder that contains '$executable_name'."
    error "Add this directory to your shell profile, then restart your terminal:"
    error "  export PATH=\"$bin_dir:\$PATH\""
}

function check_platform() {
    local platform=$(uname -s)

    if [[ "$platform" == "Linux" ]]; then
        info "Detected Linux platform"
        PLATFORM="linux"
    elif [[ "$platform" == "Darwin" ]]; then
        info "Detected macOS platform"
        PLATFORM="macos"
    elif [[ "$platform" == CYGWIN* || "$platform" == MSYS* || "$platform" == MINGW* ]]; then
        info "Detected Windows environment ($platform)"
        PLATFORM="windows"
    else
        error "Unsupported platform: $platform"
        error "This installation script currently only supports Linux, macOS, and Windows environments"
        exit 1
    fi
}

function check_uv_installed() {
    if command -v uv >/dev/null 2>&1; then
        info "uv is already installed: $(uv --version)"
        UV_INSTALLED=true
    else
        info "uv is not installed"
        UV_INSTALLED=false
    fi
}

function install_uv() {
    info "Installing uv using the official Astral installer..."

    if ! command -v curl &> /dev/null; then
        error "curl is required to install uv. Please install curl first."
        exit 1
    fi

    if curl -LsSf https://astral.sh/uv/install.sh | sh; then
        success "uv installed successfully"

        # On Windows environments, uv might install to varying locations depending on native vs emulated env
        export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$PATH"

        if ! command -v uv &> /dev/null; then
            warning "uv was installed but not found in PATH for this session"
            warning "You may need to restart your terminal or run:"
            warning "  export PATH=\"\$HOME/.cargo/bin:\$HOME/.local/bin:\$PATH\""
        fi
    else
        error "Failed to install uv"
        exit 1
    fi
}

function check_vibe_installed() {
    if [[ -n "$(find_command_in_path vibe "$ORIGINAL_PATH")" || -n "$(find_command_in_path vibe.exe "$ORIGINAL_PATH")" ]]; then
        info "vibe is already installed"
        VIBE_INSTALLED=true
        return
    fi

    local uv_bin_dir
    uv_bin_dir=$(uv tool dir --bin 2>/dev/null || true)
    
    # Translate Windows paths to Unix paths if running in Cygwin/MSYS
    if command -v cygpath >/dev/null 2>&1 && [[ "$uv_bin_dir" == *":"* ]]; then
        uv_bin_dir=$(cygpath -u "$uv_bin_dir")
    fi

    if [[ -n "$uv_bin_dir" && ( -x "$uv_bin_dir/vibe" || -x "$uv_bin_dir/vibe.exe" ) ]]; then
        info "vibe is already installed (off PATH) at $uv_bin_dir/vibe"
        VIBE_INSTALLED=true
        return
    fi

    VIBE_INSTALLED=false
}

function install_vibe() {
    info "Installing mistral-vibe from GitHub repository using uv..."
    uv tool install mistral-vibe

    success "Mistral Vibe installed successfully! (commands: vibe, vibe-acp)"
}

function update_vibe() {
    info "Updating mistral-vibe from GitHub repository using uv..."
    uv tool upgrade mistral-vibe

    success "Mistral Vibe updated successfully!"
}

function main() {
    echo
    echo "██████████████████░░"
    echo "██████████████████░░"
    echo "████  ██████  ████░░"
    echo "████    ██    ████░░"
    echo "████          ████░░"
    echo "████  ██  ██  ████░░"
    echo "██      ██      ██░░"
    echo "██████████████████░░"
    echo "██████████████████░░"
    echo
    echo "Starting Mistral Vibe installation..."
    echo

    check_platform

    check_uv_installed

    if [[ "$UV_INSTALLED" == "false" ]]; then
        install_uv
    fi

    check_vibe_installed

    if [[ "$VIBE_INSTALLED" == "false" ]]; then
        install_vibe
    else
        update_vibe
    fi

    if [[ -n "$(find_command_in_path vibe "$ORIGINAL_PATH")" || -n "$(find_command_in_path vibe.exe "$ORIGINAL_PATH")" ]]; then
        success "Installation completed successfully!"
        echo
        echo "You can now run vibe with:"
        echo "  vibe"
        echo
        echo "Or for ACP mode:"
        echo "  vibe-acp"
    else
        local UV_BIN_DIR
        local VIBE_BIN_PATH=""
        UV_BIN_DIR=$(uv tool dir --bin 2>/dev/null || true)
        
        # Translate Windows paths to Unix paths if running in Cygwin/MSYS
        if command -v cygpath >/dev/null 2>&1 && [[ "$UV_BIN_DIR" == *":"* ]]; then
            UV_BIN_DIR=$(cygpath -u "$UV_BIN_DIR")
        fi

        if [[ -n "$UV_BIN_DIR" ]]; then
            if [[ -x "$UV_BIN_DIR/vibe" ]]; then
                VIBE_BIN_PATH="$UV_BIN_DIR/vibe"
            elif [[ -x "$UV_BIN_DIR/vibe.exe" ]]; then
                VIBE_BIN_PATH="$UV_BIN_DIR/vibe.exe"
            fi
        fi

        if [[ -n "$VIBE_BIN_PATH" ]]; then
            print_missing_path_instructions "vibe" "$VIBE_BIN_PATH"
        else
            error "Installation completed but 'vibe' command not found"
            error "uv did not expose a 'vibe' executable in the expected tools directory."
            error "Please check your installation and PATH settings"
        fi
        exit 1
    fi
}

main

Tura de longboard de Adancata

Pe la mijlocul lui octombrie, cand inca era cald, am reusit sa mergem pe un traseu care il identificasem de mult, si anume de la Ploiesti in dreapta, spre Urziceni. Traseul este usor, cam 39 de km in principal drept cu cateva coborari usoare.

Este o zona cu sosele bune, putin circulate, si cu o linie de tren cu curse regulate care o putem folosi pentru acces si retragere.

Am plecat din Bucuresti tarziu, pe la 10 asa din motive variate. Din pacate am pierdut trenul direct Ploiesti Sud asa ca am mers in vest si de acolo am luat un uber pana in sud. Aici am gasit aceasta incantatoare poezie a strazii.

Din Ploiesti sud am luat un tren – rata pana la a doua statie, Rafov. De unde a inceput efectiv aventura.

Drumul a fost ok, desi la un moment dat m-au alergat niste caini (vezi video).

Am reusit sa ne oprim doar la o bere, la Barbosu, pentru ca eram grabiti sa prindem trenul de 4 sau la cat of i fost din Adancata.

Am facut si un film asa mai old school, am renuntat la chestiile facute automat de Quick.

In cautarea eluzivei KT (K-Pg) boundary

Acum 2 ani, pentru ca cineva din anturajul meu se interesa destul de mult de geologie si paleontologie, am vrut sa vad daca putem sa vedem in Romania cum arata KT Boundary.

Ka kontext, aceasta reprezinta o semnatura geologica care se gaseste in depozite sedimentare din perioada de trecere dintre Cretacic si Paleogen/Tertiar. Adica exact, cand au disparut dinozaurii.

Cand a cazut asteroidul in Chicxulub, peste tot pe glob s-a depus un strat de cenusa bogat in iridiu, care poate fi vazut in mai multe locatii.

Apropo, alte chestii care se pot gasi de la impact sunt tektitele, niste sfere de sticla care s-au format cand ejecta s-a intors pe pamant sub forma de “ploaie” de sticla topita.

Sa revenim la KT boundary. Ce ma asteptam sa gasesc? Pai un fel de banda macar, sa ii arat acestei persoane interesate, si mie de altfel.

Exista niste studii facute in Romania, si Bulgaria (o sa vedeti mai tarziu de ce), in care se arata aproximativ unde ar putea fi gasite si cum ar trebui sa arate.

Deja exista studiul lui MC Melinte & friends aici.

Apoi mai detaliat este studiul facut doamna Ana Voica Bojar si Hans Peter Bojar, care il puteti gasi aici.

Aici se vorbeste despre 2 locatii identificate, in Carpatii orientali.

Una la Pietrosita, pe valea Ialomitei si una la Varnita in nord.

Initial am tentat versiunea din Pietrosita, pentru ca era mult mai aproape si parea accesibila cu masina. Dupa studiu ar fi trebuit sa gasesc ceva de genul acesta:

Pietrosita este accesibila cu masina din Bucuresti, pe DN71 spre Moroieni / Sinaia. Adica dupa harta, undeva pe aici:

Am coborat pe mal dar nu parea sa semene nimic cu ce era in pozele din lucrare.

Intre timp ii scrisesem doamnei Bojar, pe adresa de la universitatea din Zurich, si mi-a raspuns in final . Se pare ca primaria a efectuat niste lucrari de consolidare a malului si aflorismentul din Cretacic a fost acoperit. Deci cam asta e …

Cealalta locatie pare mult mai izolata asa ca deocamdata am renuntat la planuri. Pana in episodul 2, in Bulgaria.