- Introduction — Avant, on achetait. Aujourd'hui, on paie chaque mois. Si on arrête, on perd tout.
- Trois exemples :
- Google Photos — Google peut effacer vos photos.
- Spotify — vos playlists sont prisonnières.
Ask pi for shell commands without leaving your terminal.
jq (optional, for environment caching)Ask pi for shell commands without leaving your terminal.
jq (optional, for environment caching)| //> 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 |