Skip to content

Instantly share code, notes, and snippets.

View tanapoln's full-sized avatar

Tanapol Nearunchorn tanapoln

View GitHub Profile
@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 / 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;
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 / 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;
@tanapoln
tanapoln / mysql-debug.sql
Created September 26, 2017 03:37
MySQL Debug
show full processlist;
SHOW ENGINE InnoDB STATUS;
SHOW OPEN TABLES WHERE In_use > 0;
SELECT * FROM `information_schema`.`innodb_trx` ORDER BY `trx_started`;
SELECT * FROM `information_schema`.`innodb_locks`;
@Transactional
public void updateAllFriends() {
Batch<Collection<User>> usersBatch = loadAllUsersBatch();
for (Collection<User> users : usersBatch) {
for (User user : users) {
Collection<User> friends = fetchFriends(user);
TransactionUtils.requiresNewTransaction(() -> {
user.getFriends().addAll(friends);
user.setLastUpdateTime(new Date());
});
@Transactional
public void updateAllFriends() {
Batch<Collection<User>> usersBatch = loadAllUsersBatch();
for (Collection<User> users : usersBatch) {
for (User user : users) {
Collection<User> friends = fetchFriends(user);
TransactionUtils.requiresNewTransaction(() -> {
User newUser = repo.findOne(user.getId())
newUser.getFriends().addAll(friends);
newUser.setLastUpdateTime(new Date());
@Transactional
public void updateAllFriends() {
Collection<User> users = loadAllUsers();
for (User user : users) {
Collection<User> friends = fetchFriends(user);
user.getFriends().addAll(friends);
user.setLastUpdateTime(new Date());
}
}
@tanapoln
tanapoln / fix-letsencrypt-ca.sh
Created April 18, 2017 07:30
Fix letsencrypt CA error on OSX + java8
#!/bin/bash
set -e
# See Reference: https://github.com/blacklabelops/jenkins/blob/master/Dockerfile
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
export KEYSTORE=$JAVA_HOME/jre/lib/security/cacerts
wget -P /tmp/ https://letsencrypt.org/certs/letsencryptauthorityx1.der
wget -P /tmp/ https://letsencrypt.org/certs/letsencryptauthorityx2.der
package org.springframework.data.envers.repository.support;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import javax.persistence.EntityManager;