Skip to content

Instantly share code, notes, and snippets.

@franzwong
franzwong / DemoJob.java
Last active February 5, 2023 08:12
Retry with time interval for Quartz
package org.example;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.PersistJobDataAfterExecution;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@franzwong
franzwong / Main.java
Created February 5, 2023 00:58
Quartz schedular example
package org.example;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
@franzwong
franzwong / Client.java
Last active January 4, 2023 04:25
Use Java Selector to handle multiple clients with single thread
package com.franzwong.selector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel;
public class Client {
@franzwong
franzwong / README.md
Created November 21, 2022 02:19
Run Jenkins on local machine

Run Jenkins on local machine

Setup

mkdir -p jenkins_local
cd jenkins_local
PROJECT_DIR=$(PWD)
mkdir -p jenkins_home
@franzwong
franzwong / README.md
Last active November 19, 2022 16:13
Run SonarQube on local machine

Run SonarQube on local machine

Build docker image for Mac M1

There is only amd64 docker image for SonarQube. We need to build by ourselves if we want to run it on Mac M1.

mkdir sonarqube_local
cd sonarqube_local
PROJECT_DIR=$(PWD)
@franzwong
franzwong / get_generic_password.c
Last active November 12, 2022 08:31
Get generic password from MacOS Keychain with C
// Build: gcc -framework Security -framework Foundation -o get_generic_password get_generic_password.c
// Usage: ./get_generic_password <service name>
#include <CoreFoundation/CoreFoundation.h>
#include <Security/Security.h>
OSStatus getCredentialByServiceName(const char *serviceName, CFTypeRef *credential) {
CFStringRef cfServiceName = CFStringCreateWithCString(kCFAllocatorDefault, serviceName, kCFStringEncodingUTF8);
const void* keys[] = { kSecClass, kSecAttrService, kSecReturnAttributes, kSecReturnData, kSecMatchLimit };
@franzwong
franzwong / add_generic_password.c
Last active November 12, 2022 05:24
Add generic password to MacOS Keychain with C
// Build: gcc -framework Security -framework Foundation -o add_generic_password add_generic_password.c
// Usage: ./add_generic_password <service name> <username> <password>
#include <CoreFoundation/CoreFoundation.h>
#include <Security/Security.h>
int main(int argc, const char* argv[]) {
if (argc < 4) {
fprintf(stderr, "Usage: ./add_generic_pasword <service name> <username> <password>");
return 1;
@franzwong
franzwong / synology_cloud_sync_s3.tf
Last active July 3, 2022 01:34
Terraform configuration for Synology Cloud Sync with AWS S3
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.0"
}
}
required_version = "~> 1.0.0"
}
@franzwong
franzwong / MyTest.java
Created January 8, 2021 11:35
Bloomberg event creation for unit test (BLPAPI)
public class MyTest {
// Only work for Blpapi Java 3.16.1 and above
@Test
public void myTest() {
Service service;
try (InputStream is = getClass().getResourceAsStream("/marketDataSchema.xml")) {
service = TestUtil.deserializeService(is);
}
SchemaElementDefinition elementDef = service.getEventDefinition(new Name("MarketDataEvents"));
@franzwong
franzwong / get_session_token.sh
Created December 1, 2020 04:31
AWS get session token with OTP
#!/bin/bash
SERIAL_NUMBER=$1
OTP=$2
PROFILE=$3
CREDENTIALS=$(aws sts get-session-token \
--serial-number ${SERIAL_NUMBER} \
--token-code ${OTP} \
--query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]' \
--output text)