Skip to content

Instantly share code, notes, and snippets.

@franzwong
franzwong / log_file
Created February 25, 2023 03:13
Filter log lines with date range and match pattern
2023-02-25 14:32:01 INFO: Successfully connected to database server
2023-02-25 14:33:27 ERROR: Unable to process request: invalid input format
2023-02-25 14:35:11 WARNING: Disk space is running low - only 10% remaining
2023-02-25 14:38:09 DEBUG: Received response in 0.0025 seconds
2023-02-25 14:41:02 INFO: User login successful - username: jdoe, IP address: 192.168.1.10
2023-02-25 14:44:12 ERROR: Failed to establish connection with external service
2023-02-25 14:47:09 DEBUG: Processing data - record count: 1000
2023-02-25 14:51:05 INFO: System restart initiated by admin user - reason: security patch installation
2023-02-25 14:55:23 WARNING: High CPU usage detected - current usage: 90%
2023-02-25 14:59:14 ERROR: Request timed out - no response received from server.
@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"));