Světýlkův blog

Hlášky, myšlenky, Kotlin a kiting ...
  • To se nekupuje. To dostaneš za nákup. –Jan B.

  • Jak skákat s kitem (pohledem začátečníka)

    Jelikož se mi poslední zimu podařilo „sesbírat všechny své koule“ a konečně opět pokročit ve skocích s kitem na lyžích, rozhodl jsem se sepsat pár dojmů skákajícího začátečníka a trošku více do detailu popsat, jak s kitem správně skákat.

    Úvod

    Skočit s kitem je principiálně docela jednoduché, ale co je na tom celém z počátku nejtěžší, je zachovat v hlavě klid a tento jednoduchý postup skutečně vykonat! Dále bych nedoporučoval skákat s malými kity (tj. cokoliv pod 10sqm). V samotné technice skoku bude taktéž záviset na druhu kita, proto můj popis budu více směřovat dle své vlastní zkušenosti na vynikající uzavřenou komoru Aeros NAVY 2 (11sqm). Dle toho, jaký kite vlastníte již nechám na vás, abyste si svou techniku skoku vyladili sami 🙂 .

    Technika skoku

    Abych to příliš nezesložiťoval, shrnul bych celý postup skoku do těchto jednoduchých kroků:

    1. Mám kite na pravé straně větrného okna a tedy jedu „doprava“
    2. Až naberu rychlost, zatáhnu za levou stranu baru a posílám kita nad svou hlavu (ne pomalu, ale ani moc rychle – je třeba vychytat) a začínám hranit mírně proti větru (tlačím na levou nohu a snažím se udržet si pozici – nesklouzávám lyžemi po větru)
    3. Během hranění a stoupání kita nad hlavu dám bar tak daleko/blízko od sebe, abych cítil neustálý tah kita, který zároveň nesmí být tak silný, abych již na lyžích neudržel hranu (nezačal sklouzávat po větru)
    4. Jakmile je kite téměř nade mnou (ideální pozici je třeba vychytat), přitáhnu bar k sobě a okamžitě tahám za pravou stranu baru, abych kite stočil postupně zpět do směru jízdy

    A to by mělo být de facto vše 🙂 . Jen jak jsem již zmínil dříve, doporučil bych si tento postup dopředu naučit nazpaměť neboť (pokud člověk ještě není zvyklý) v momentě, kdy vás kite zvedne, tak se mozek dostane do jakéhosi „stavu přežití“ a v tomto stavu není absolutně schopen přemýšlet – proto hlavně ono vrácení kitu zpět do směru jízdy musíte udělat zcela automaticky/intuitivně (bez přemýšlení). Pokud byste kite nestočili a nechali ho tak, velmi pravděpodobně dojde k tomu, že se zhoupnete dopředu a přistanete na záda – proto páteřák vždy s sebou! Nebo pokud byste, nedej bože, zatáhli za špatnou stranu (v tomto případě za levou), tak se můžete rozbít opravdu ošklivě …

    Pokud se vrátím k bodu 3 – jak moc mít bar od sebe – tak to se mi zároveň ukázalo jako dobré měřítko, jak bude skok cca vysoký. Pokud bude foukat hodně, kite mě donutí mít bar téměř úplně od sebe a dle toho můžu čekat, že skok bude vysoký. Proto bych ze začátku v takovém případě doporučil přitáhnout bar ne úplně k sobě, ale třeba jen do poloviny. Naopak, pokud si budu moct dovolit bar během stoupání kita mít blíže k sobě, znamená to, že fouká málo, nebo obecně, že kite má málo síly, což se projeví tak, že po úplném přitažení baru neskočím buď vůbec, anebo velmi málo.

    Jako ukázku výše popsané techniky skoku bych zvolil tento krátký úryvek (skočil jsem asi 10-20cm nad zem):

    To by bylo ke skokům vše, přeju vám krásné radovánky s vaším kitem, ale hlavně: skákejte bezpečně! 🙂

  • Je to taková těžká kráva s položelezným tělem. –Pavel K.

  • Kdybys byla můj typ, tak už jsi dávno zadaná.

  • Je to jako snažit se zkřížit hrocha a stolní lampu. –Pavel K.

  • Koltin: GUI aplikace pro výpočet ceny benzínu dle spotřeby

    Vítejte v dalším díle věnovaném jazyku Kotlin, kde si ukážeme, jak psát nabušené GUÍ-tka založené na JavaFX za pomocí výborného frameworku TornadoFX. Náš výsledek bude vypadat takto a celé nakódění nám nezabere déle jak 30 minut:

  • Má lenost se nedá měnit, ale pouze kultivovat.

  • Implicitně slušivý oblek netřeba explicitně chválit.

  • Signály těla? Asi to chtěla …

  • Hra Hangman (Šibenice) v Kotlinu

    Rád s nadsázkou říkávám, že Kotlin je tak produktivní, že občas už ani sám nevím, co bych v něm dál napsal, neboť jak by se na Ostravsku řeklo „bo všecko je už zrobene“ 🙂 . A tak jsem si při příležitosti víkendové nudy řekl, že si jen tak napíšu jednoduchou konzolovou hru Hangman (Šibenice/Oběšenec). Pokud byste dokázali kód refaktorovat do ještě lepší podoby, podělte se v komentářích 🙂 , nicméně tady to je a přeji příjemnou zábavu:

    package com.svetylkovo.games.hangman
    
    object Hangman {
    
        private var remainingWrongAttempts = 5
        private var word = ""
    
        private val guessedLetters = mutableSetOf<Char>()
        private val wrongGuesses = mutableSetOf<Char>()
    
        @JvmStatic
        fun main(args: Array<String>) {
    
            println("Let's play Hangman!")
            println("Type a word to be guessed:")
    
            word = readLine()?.nullIfBlank() ?: "HANGMAN"
    
            clearScreen()
    
            println("\nStart guessing!\n")
    
            while (remainingWrongAttempts > 0) {
                val hiddenWord = getHiddenWord()
    
                if ('_' !in hiddenWord) {
                    println("You did it!")
                    return
                }
    
                println("Word: ${hiddenWord.replace(Regex("."), "$0 ")}")
                printWrongGuesses()
                println("Remaining wrong attempts: $remainingWrongAttempts")
                println("Guess a letter:")
    
                val letter = readLine()?.nullIfBlank()
                    ?.toUpperCase()
                    ?.first()
    
                if (letter != null) {
                    guessedLetters += letter
    
                    if (letter in word) {
                        println("\nCorrect!\n")
                    } else {
                        println("\nWrong!\n")
                        wrongGuesses += letter
                        remainingWrongAttempts--
                    }
                }
            }
    
            println("You've been hanged! :-(")
        }
    
        private fun printWrongGuesses() {
            if (wrongGuesses.isNotEmpty()) {
                println("Wrong guesses: ${wrongGuesses.joinToString(", ")}")
            }
        }
    
        private fun getHiddenWord() = word.map { letter ->
            if (letter in guessedLetters) letter else '_'
        }.joinToString("")
    
        private fun clearScreen() = repeat(25) { println() }
    
        private fun String.nullIfBlank() = if (isBlank()) null else this
    }