Skip to content

Instantly share code, notes, and snippets.

View petitviolet's full-sized avatar
🕶️
😃

petitviolet petitviolet

🕶️
😃
View GitHub Profile
@petitviolet
petitviolet / graphiql.html
Created December 21, 2019 11:47
GraphQL Web UI with text box to edit AccessToken
<!-- https://github.com/howtographql/sangria/blob/master/src/main/resources/graphiql.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="robots" content="noindex" />
<meta name="referrer" content="origin" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>GraphiQL</title>
<style>
@petitviolet
petitviolet / tracer.rb
Created December 17, 2019 14:25
Tracing method calls using TracePoint
class Debugger
def initialize(events)
@tp = TracePoint.new(*(events || %i[call b_call raise])) do |tp|
tp.binding.irb
end
@tp.disable
end
def trace(&block)
@tp.enable
" general
set autoupdategist " gistの設定を自動反映
let scrollstep = 150
let fullpagescrollpercent = 100
set smoothscroll
set noautofocus " サイトを開いた時に入力欄にフォーカスが奪われるのを抑止
let searchlimit = 20
let barposition = "bottom"
@petitviolet
petitviolet / FileServer.go
Last active April 5, 2019 00:08
static file server written in golang.
package main
import (
"log"
"net/http"
)
func main() {
log.Println("Server started. 0.0.0.0:8080")
http.ListenAndServe(":8080", http.HandlerFunc(fileHandler))
@petitviolet
petitviolet / GenericDiff.scala
Created November 17, 2018 13:28
generic diff of case class instances
import shapeless._
import shapeless.labelled.FieldType
object ClassDiff extends App {
sealed abstract class Field(name: String)
case class FieldSame(name: String) extends Field(name)
case class FieldDiff[A](name: String, before: A, after: A) extends Field(name)
trait GenericDiff[HL <: HList] {
@petitviolet
petitviolet / main.go
Last active September 10, 2018 06:16
benchmark for select from MySQL
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"github.com/google/uuid"
"os"
"strings"
)
@petitviolet
petitviolet / SkinnyORMUpsert.scala
Last active August 2, 2018 07:35
helper class for execution "upsert" (update or insert) query using Skinny-ORM.
import skinny.orm.feature.NoIdCUDFeature
object Implicits {
implicit class Upserter[T](val orm: NoIdCUDFeature[T]) extends AnyVal {
def upsert(condition: SQLSyntax)(update: (SQLSyntax, Any)*)(insert: (SQLSyntax, Any)*)(implicit s: DBSession): Unit = {
orm.updateBy(condition).withNamedValues(update: _*) match {
case 1 => ()
case 0 =>
orm.createWithNamedValues(insert: _*)
()
import org.slf4j.LoggerFactory
trait LoggerProvider {
protected lazy val logger = new xLogger(this.getClass.getName)
}
private object xLogger {
def apply(name: String): xLogger = new xLogger(name)
}
class xLogger private (name: String) {
private lazy val logger = LoggerFactory.getLogger(name)
case class MyObj()
def insert(c: MyObj, excludes: String*)(implicit s: DBSession): Id[MyObj] = {
import scala.reflect.runtime.{ universe => ru }
val clazz = c.getClass
def caseMap[T: ru.TypeTag: reflect.ClassTag](instance: T): Seq[(SQLSyntax, Any)] = {
val im = ru.runtimeMirror(clazz.getClassLoader).reflect(instance)
ru.typeOf[T]
.members
@petitviolet
petitviolet / nginx_deployment.yaml
Created March 11, 2018 11:04
sample Nginx configuration on Kubernetes using ConfigMap to configure nginx.
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-conf
data:
nginx.conf: |
user nginx;
worker_processes 3;
error_log /var/log/nginx/error.log;
events {