Skip to content

Instantly share code, notes, and snippets.

@CattenLinger
CattenLinger / SimpleQueryStatement.kt
Created June 14, 2021 15:59
Simple Kotlin Exposed transaction extension that executes string SQL queries.
/**
The SimpleQueryStatement enfoces the statement type to "SELECT". It's useful
when using some special sql querys, such as sqlite3 query 'PRAGMA database_list;'.
Usage:
Like `Transaction.exec()`
```
val someValue = transaction {
@CattenLinger
CattenLinger / FibonacciIterator.kt
Created May 30, 2021 15:43
An iterator implementation that produces numbers from the Fibonacci sequence.
import java.math.BigDecimal
class FibonacciIterator : Iterator<BigDecimal> {
var generations = 0L
private set
private var ancient = BigDecimal(0)
private var parents = BigDecimal(1)
override fun hasNext(): Boolean {
@CattenLinger
CattenLinger / Hexagram64.kt
Last active February 27, 2020 11:24
周易 BASE 六十四卦
import java.io.ByteArrayOutputStream
object Hexagram64 {
private const val zero = '䷀'
private const val nil = '⚋'
fun parse(string: String): ByteArray = ByteArrayOutputStream(128).use { stream ->
var count = 0
var length = 0
var data = 0
@CattenLinger
CattenLinger / CustomBaseNumber.kt
Created February 13, 2020 03:21
CustomBaseNumberKt
package net.catten.demo
import java.util.*
import kotlin.math.abs
private const val dummy = '_'
private val codec = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toSet().toCharArray()
private val base = codec.size
private val max = Long.MAX_VALUE.toCustomBase()
@CattenLinger
CattenLinger / create_database_for_app.sh
Created October 26, 2019 15:46
A little script to creating database and user for application.
#!/bin/bash
set -e
app_name=""
app_username=""
app_password="123456"
app_user_host="localhost"
db_name=""
mysql_username="root"
mysql_password=""
@CattenLinger
CattenLinger / JsonCat.kt
Created December 26, 2018 19:24
JsonCat - Tool for json flatten
package net.catten.json.huge.extractor.complex
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.node.JsonNodeType
import java.util.*
import kotlin.collections.ArrayList
class JsonCat {
fun extractJson(jsonNode: JsonNode): List<JsonKnot> {
@CattenLinger
CattenLinger / bootstrap.tiny.css
Created June 19, 2018 07:48
Bootstrap3-like homebrew grid system
/*
Author : https://www.cnblogs.com/kidney/p/5351133.html
*/
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
@CattenLinger
CattenLinger / MySQLNDB7Dialect.java
Created June 12, 2018 02:35
MySQL Dialect for NDB7 Engine
import org.hibernate.dialect.MySQL5Dialect;
public class MySQLNDB7Dialect extends MySQL5Dialect {
@Override
public boolean supportsCascadeDelete() {
return true;
}
@Override
@CattenLinger
CattenLinger / BaseJsonAttributeConverter.java
Created May 31, 2018 05:17
Base Json Attribute Converter for JPA
package com.shinonometn.iot.commons.database;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
import com.fasterxml.jackson.databind.ObjectWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@CattenLinger
CattenLinger / KafkaDemo.java
Last active June 12, 2018 04:15
Kafka Demo
package net.catten.kafka.demo;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;