Skip to content

Instantly share code, notes, and snippets.

View tanapoln's full-sized avatar

Tanapol Nearunchorn tanapoln

View GitHub Profile
@tanapoln
tanapoln / ClosableList.java
Created June 12, 2018 10:31
Tensorflow Java API with Sertis Word Segmentation
import java.util.AbstractList;
import java.util.List;
import java.util.Objects;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CloseableList<E extends AutoCloseable> extends AbstractList<E> implements AutoCloseable {
public static final Logger LOGGER = LoggerFactory.getLogger(CloseableList.class);
private final List<E> closableList;
package com.example.solr.ltr.feature;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.PostingsEnum;
import org.apache.lucene.index.ReaderUtil;
import org.apache.lucene.index.Term;
@tanapoln
tanapoln / TransactionalAnnotationTest.java
Last active April 7, 2020 16:00
Transactional Unit Testing
package com.wongnai.linter;
import java.util.Arrays;
import org.junit.Test;
import org.springframework.transaction.annotation.Transactional;
import com.tngtech.archunit.base.DescribedPredicate;
import com.tngtech.archunit.core.domain.JavaClass;
import com.tngtech.archunit.core.domain.JavaClasses;
import com.tngtech.archunit.core.domain.JavaMethod;
import com.tngtech.archunit.core.importer.ClassFileImporter;
@tanapoln
tanapoln / gcd.cpp
Last active August 20, 2020 17:05
ICIE Templates
/// Name: gcd
/// Description: GCD
/// Guarantee: int gcd(int a, int b) {
int gcd(int a, int b) {
int r = a % b;
if (r == 0) return b;
return gcd(b, r);
}
@tanapoln
tanapoln / demo-1.go
Last active September 13, 2020 09:36
Concurrency Problem - code sample
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
quota := 1000
r.GET("/", func(c *gin.Context) {
@tanapoln
tanapoln / main.go
Created September 14, 2020 11:41
How to handle optimistic lock in go
package main
import (
"database/sql"
"github.com/gin-gonic/gin"
_ "github.com/go-sql-driver/mysql"
)
var db *sql.DB
@tanapoln
tanapoln / main.go
Last active September 15, 2020 15:57
Simple page view counter
package main
import (
"fmt"
"github.com/gin-gonic/gin"
)
func main() {
counter := 0
@tanapoln
tanapoln / main.go
Created September 15, 2020 15:58
Simple page view counter atomic
package main
import (
"fmt"
"sync/atomic"
"github.com/gin-gonic/gin"
)
func main() {
@tanapoln
tanapoln / main.go
Created September 15, 2020 15:59
Simple page view counter - mutex
package main
import (
"fmt"
"sync"
"github.com/gin-gonic/gin"
)
func main() {
@tanapoln
tanapoln / main.go
Created January 31, 2021 04:49
Custom go vet entrypoint
package main
import (
"golang.org/x/tools/go/analysis/multichecker"
"golang.org/x/tools/go/analysis/passes/asmdecl"
"golang.org/x/tools/go/analysis/passes/assign"
"golang.org/x/tools/go/analysis/passes/atomic"
"golang.org/x/tools/go/analysis/passes/bools"
"golang.org/x/tools/go/analysis/passes/buildtag"
"golang.org/x/tools/go/analysis/passes/cgocall"