WIP
This is based on 0 to LSP : Neovim RC From Scratch by ThePrimeagen. Go check it out, big like and subscribe!
This is a learning by doing hands-on writeup. I suggest doing a writeup on your own if you have the time for it.
WIP
This is based on 0 to LSP : Neovim RC From Scratch by ThePrimeagen. Go check it out, big like and subscribe!
This is a learning by doing hands-on writeup. I suggest doing a writeup on your own if you have the time for it.
| #!/bin/bash | |
| # This script subscribes to a MQTT topic using mosquitto_sub. | |
| # On each message received, you can execute whatever you want. | |
| while true # Keep an infinite loop to reconnect when connection lost/broker unavailable | |
| do | |
| mosquitto_sub -h "127.0.0.1" -t "test" | while read -r payload | |
| do | |
| # Here is the callback to execute whenever you receive a message: |
| #!/boot/bzImage | |
| # Linux kernel userspace initialization code, translated to bash | |
| # (Minus floppy disk handling, because seriously, it's 2017.) | |
| # Not 100% accurate, but gives you a good idea of how kernel init works | |
| # GPLv2, Copyright 2017 Hector Martin <[email protected]> | |
| # Based on Linux 4.10-rc2. | |
| # Note: pretend chroot is a builtin and affects the current process | |
| # Note: kernel actually uses major/minor device numbers instead of device name |
| import akka.actor.IO._ | |
| import akka.actor.{Props, IO, IOManager, Actor, ActorSystem} | |
| import akka.event.Logging | |
| import akka.util.ByteString | |
| import java.net.InetSocketAddress | |
| class TCPEchoServer(port: Int) extends Actor { | |
| val log = Logging(context.system, this) | |
| val state = IterateeRef.Map.async[IO.Handle]()(context.dispatcher) |
| /* Start by creating a reader for some fake yet conceivable type for executing SQL queries. */ | |
| val dbReader: Reader[Properties, JdbcExecutor] = | |
| for { | |
| driver <- read[String]("db.driver") | |
| uri <- read[String]("db.uri") | |
| user <- read[String]("db.username") | |
| password <- read[String]("db.password") | |
| name <- read[String]("db.pool.name") | |
| minCons <- read[Int]("db.pool.minConnections") |
| trait Enum { //DIY enum type | |
| import java.util.concurrent.atomic.AtomicReference //Concurrency paranoia | |
| type EnumVal <: Value //This is a type that needs to be found in the implementing class | |
| private val _values = new AtomicReference(Vector[EnumVal]()) //Stores our enum values | |
| //Adds an EnumVal to our storage, uses CCAS to make sure it's thread safe, returns the ordinal | |
| private final def addEnumVal(newVal: EnumVal): Int = { import _values.{get, compareAndSet => CAS} | |
| val oldVec = get |