Skip to content

Instantly share code, notes, and snippets.

@qqq-tech
qqq-tech / CustomNullSerializer
Created March 17, 2022 06:48 — forked from chenyhd/CustomNullSerializer
Jackson return empty instead of null
package xx.xx;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.ser.DefaultSerializerProvider;
import com.fasterxml.jackson.databind.ser.SerializerFactory;
import java.io.IOException;
import java.util.List;
@qqq-tech
qqq-tech / renew-certificates.sh
Created January 13, 2022 09:49 — forked from sahilsk/renew-certificates.sh
LetsEncrypt auto-renew script
#!/bin/bash
#### Source : https://vincent.composieux.fr/article/install-configure-and-automatically-renew-let-s-encrypt-ssl-certificate
WEB_SERVICE='nginx'
CONFIG_FILE='/usr/local/etc/le-yourdomain-webroot.ini'
LE_PATH='/opt/letsencrypt'
EXP_LIMIT=30;
if [ ! -f $CONFIG_FILE ]; then
echo "[ERROR] config file does not exist: $CONFIG_FILE"
@qqq-tech
qqq-tech / VersionNumberComparator.java
Created January 9, 2022 23:31 — forked from adamcbuckley/VersionNumberComparator.java
A java.util.Comparator for version (or chapter) numbers, which have an arbitrary number of decimal points.
package com.hebdensoft;
import java.util.Comparator;
/**
* <p>A java.util.Comparator for version (or chapter) numbers, which have an arbitrary number of decimal points.</p>
* <p>The code was taken from https://bugs.openjdk.java.net/browse/JDK-8134512 and http://cr.openjdk.java.net/~igerasim/8134512/04/webrev/index.html</p>
* <p>How to use:</p>
* <p><code>myListOfVersionNumbers.sort(VersionNumberComparator.getInstance());</code></p>
@qqq-tech
qqq-tech / pycaret.ipynb
Created December 16, 2021 15:10 — forked from serithemage/pycaret.ipynb
PyCaret튜토리얼-회귀.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@qqq-tech
qqq-tech / mitigate.sh
Created December 12, 2021 13:24 — forked from CyberLine/mitigate.sh
vCenter 7.0 workaround for #CVE-2021-44228
cp /usr/lib/vmware-vmon/java-wrapper-vmon /usr/lib/vmware-vmon/java-wrapper-vmon.bak
cp /usr/lib/vmware-updatemgr/bin/jetty/start.ini /usr/lib/vmware-updatemgr/bin/jetty/start.ini.bak
cp /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar.bak
cp /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar.bak
zip -q -d /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -q -d /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
sed -i 's/exec $java_start_bin $jvm_dynargs $security_dynargs $original_args/log4j_arg="-Dlog4j2.formatMsgNoLookups=true"\nexec $java_start_bin $jvm_dynargs $log4j_arg $security_dynargs $original_args/g' /usr/lib/vmware-vmon/java-wrapper-vmon
sed -i 's/exec $java_start_bin $jvm_dynargs "$@"/log4j_arg="-Dlog4j2.formatMsgNoLookups=true"\nexec $java_start_bin $jvm_dynargs $log4j_arg "$@"/g' /usr/lib/vmware-vmon
@qqq-tech
qqq-tech / EnumDbValueTypeHandler-annotation.java
Created November 23, 2021 04:58 — forked from umbum/EnumDbValueTypeHandler-annotation.java
MyBatis Custom DefaultEnumTypeHandler using annotation
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Arrays;
@qqq-tech
qqq-tech / EnumUsingDbCodeTypeHandler-interface.java
Created November 23, 2021 04:56 — forked from umbum/EnumUsingDbCodeTypeHandler-interface.java
MyBatis EnumUsingDbCodeTypeHandler using interface
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Arrays;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedTypes;
import Web3Token from 'web3-token';
// Connection to MetaMask wallet (you can actually use any wallet)
// you can even use ethersjs instead of web3
const web3 = new Web3(ethereum);
await ethereum.enable();
// getting address from which we will sign message
const address = (await web3.eth.getAccounts())[0];
const Web3Token = require('web3-token');
// getting a token from authorization header
const token = req.headers['Authorization']
const { address, body } = await Web3Token.verify(token);
// now you can find that user by his address
// tip: better to do it case insensitive
req.user = await User.findOne({ address });
@qqq-tech
qqq-tech / rotateNginxLogs.bat
Created October 26, 2021 01:02 — forked from fnsonlg/rotateNginxLogs.bat
Rotate NGinx logs on windows
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set YMD=%%c-%%a-%%b)
move c:\app_install\NGiNX\logs\access.log c:\app_install\NGiNX\logs\access_%YMD%.log
move c:\app_install\NGiNX\logs\error.log c:\app_install\NGiNX\logs\error_%YMD%.log
call c:\app_install\NGiNX\nginx -p c:\app_install\NGiNX\ -s reopen