Skip to content

Instantly share code, notes, and snippets.

View susliko's full-sized avatar
🕊️

Vasil Markoukin susliko

🕊️
View GitHub Profile
@susliko
susliko / talk.md
Last active May 14, 2026 13:33
French oral presentation: Les abonnements numériques

Les abonnements : on ne possède plus rien


Plan

  1. Introduction — Avant, on achetait. Aujourd'hui, on paie chaque mois. Si on arrête, on perd tout.
  2. Trois exemples :
    • Google Photos — Google peut effacer vos photos.
  • Spotify — vos playlists sont prisonnières.
@susliko
susliko / README.md
Created April 26, 2026 17:37
howdoi - Ask pi for shell commands

howdoi

Ask pi for shell commands without leaving your terminal.

Requirements

  • pi - AI coding agent
  • jq (optional, for environment caching)

Installation

@susliko
susliko / README.md
Created April 26, 2026 17:33
howdoi - Ask pi for shell commands

howdoi

Ask pi for shell commands without leaving your terminal.

Requirements

  • pi - AI coding agent
  • jq (optional, for environment caching)

Installation

//> using scala 3.3.1
//> using dep com.softwaremill.sttp.tapir::tapir-core:1.10.3
//> using dep com.softwaremill.sttp.tapir::tapir-json-circe:1.10.3
//> using dep com.softwaremill.sttp.tapir::tapir-openapi-docs:1.10.3
//> using dep com.softwaremill.sttp.tapir::tapir-jdkhttp-server:1.10.3
//> using dep com.softwaremill.sttp.apispec::openapi-circe-yaml::0.8.0
//> using dep com.softwaremill.sttp.apispec::openapi-circe-yaml::0.8.0
import sttp.tapir.*
import sttp.tapir.json.circe.*
//> using platform native
//> using nativeVersion 0.4.17
//> using nativeMode debug
//> using dep com.armanbilge::epollcat::0.1.6
//> using toolkit typelevel:0.1.25
//> using dep org.typelevel::log4cats-noop::2.6.0
//> using dep org.http4s::http4s-dsl::0.23.26
//> using dep org.http4s::http4s-ember-server::0.23.26
module.exports = grammar({
name: 'pluscal',
extras: $ => [
/\s|\r?\n/
],
rules: {
pcal_source_file: $ => $.pcal_algorithm,
" basics
set encoding=utf-8
set number
filetype plugin on
syntax on
set relativenumber
set tabstop=4
set shiftwidth=4
set expandtab
set smartcase
// Специальный тип, который утверждает, что для T есть схема
// и экземпляр T можно превратить в record
trait AvroRecord[T] {
val getSchema: String
def toRecord(value: T): String
}
// моделируем какие-то наши данные
case class SourcedPoint(someData: String)
struct Solution {}
impl Solution {
pub fn move_zeroes(nums: &mut Vec<i32>) {
let mut next_zero_opt: Option<usize> = None;
for i in 0..nums.len() {
let num = nums[i];
if num != 0 && next_zero_opt.is_some() {
let next_zero = next_zero_opt.unwrap();
import java.util.Properties
import cats.data.EitherNel
import cats.syntax.parallel._
import cats.syntax.either._
import cats.syntax.option._
import cats.instances.parallel._
import scala.util.Try