Skip to content

Instantly share code, notes, and snippets.

use std::fs::File;
use std::sync::{Arc};
use daemonize::Daemonize;
use tokio::net::TcpListener;
use tokio::runtime::Builder;
use tokio::sync::Mutex;
fn setup(listener: Arc<Mutex<Option<TcpListener>>>) {
let runtime = Builder::new_multi_thread()
use parking_lot::{RwLock, RwLockReadGuard, RwLockUpgradableReadGuard};
use log::{debug};
use rkyv::{Archive, Archived, Deserialize, out_field, RelPtr, Serialize};
use std::alloc::{alloc, dealloc, Layout};
use std::cmp::max;
use std::mem::ManuallyDrop;
use std::ops::{Deref, DerefMut};
use std::ptr::{copy_nonoverlapping};
use std::sync::atomic::{AtomicUsize, Ordering};
wspeirs / waterfall.cpp
Created Jul 3, 2020
Waterfall from QwtPlotSpectrogram
View waterfall.cpp
#include <qwt_color_map.h>
#include <qwt_matrix_raster_data.h>
#include <boost/circular_buffer.hpp>
#include <QtCore/QMutex>
#include "waterfall.h"
using boost::circular_buffer;
using std::make_shared;
View CMakeLists.txt
cmake_minimum_required(VERSION 3.8.0)
# Project info
View simple shell scripting
const x:num = 123.456; // this is a constant that never changes
const y:str = "hello world"; // constant string literal
var a:str = "hello"; // create a string variable, and assign to string literal
var b:num = 23.4; // create a number variable, and assign number
var c:str[] = ["hello", "world"]; // create an array variable, assign literal
CWD = "/path/to/current/directory"; // CWD is a special variable that can be set or read, and represents the current working directory
print(ARG[0]); // ARG is a spcecial variable that can only be read; it is a str[]. The first argument (zero index) is the first argument passed to the script.
wspeirs / qt_logging.cpp
Created Apr 11, 2019
Example of how to use logging in QT
View qt_logging.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QFile>
#include <QDebug>
#include <QLoggingCategory>
let mut wal_file = try!(OpenOptions::new().read(true).write(true).create(true).open(tree_file_path.to_owned() + ".wal"));
// if we have a WAL file, just replay it into the mem_tree
if try!(wal_file.metadata()).len() != 0 {
let mut buff = vec![0; node_size];
while true {
match wal_file.read_exact(&mut buff) {
Ok(_) => {
let k = try!(decode(&buff[0..max_key_size]));
QueryRunner runner = new QueryRunner(dataSource);
// Use the BeanListHandler implementation to convert all
// ResultSet rows into a List of Person JavaBeans.
ResultSetHandler<List<Person>> handler = new BeanListHandler<Person>(Person.class);
// Execute the SQL statement and return the results in a List of
// Person objects generated by the BeanListHandler.
List<Person> persons = runner.query("SELECT * FROM Person").execute(handler);
AsyncExecutor asyncRun = new AsyncExecutor(Executors.newFixedThreadPool(5));
// Setup the UpdateExecutor
UpdateExecutor executor = runner.update("UPDATE Person SET height=:height WHERE name=:name")
.bind(":height", 2.05)
.bind("name", "John Doe");
// Returns a Future for the update call
QueryRunner runner = new QueryRunner(dataSource);
// Execute the SQL insert statement
runner.insert("INSERT INTO Person (name,height) VALUES (:name,:height)")
.bind("name", "John Doe")
.bind("height", 1.82)
// Now it's time to rise to the occation...