Skip to content

Instantly share code, notes, and snippets.

View emanuelet's full-sized avatar

Emanuele Tonello emanuelet

View GitHub Profile
@emanuelet
emanuelet / rtoc.js
Last active September 29, 2023 22:22
Convert RRULE string to Cron expression (with output for Bull Repeated jobs)
const moment = require('moment-timezone')
const logger = require('tracer').colorConsole()
const { RRule, RRuleSet, rrulestr } = require('rrule')
function untilStringToDate(until) {
const re = /^(\d{4})(\d{2})(\d{2})(T(\d{2})(\d{2})(\d{2})Z?)?$/
const bits = re.exec(until)
if (!bits) throw new Error(`Invalid UNTIL value: ${until}`)
@emanuelet
emanuelet / btcpayserver_install_env.sh
Last active July 14, 2021 10:50 — forked from rockstardev/btcpayserver_install_env.sh
Setting up BTCPayServer development environment on Linux (Ubuntu)
# Installing prerequisites for BTCPayServer development on Ubuntu
# https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install?initial-os=linux
wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo add-apt-repository universe
sudo apt update
@emanuelet
emanuelet / cronrrule.js
Created May 10, 2021 05:05
Convert Cron expression to RRule string
const parser = require('cron-parser')
const { RRule } = require('rrule')
const logger = require('tracer').colorConsole()
const maps = {
dayofmonth: 'bymonthday',
dayofweek: 'byweekday',
}
module.exports = {
@emanuelet
emanuelet / app.js
Created March 4, 2021 08:18
Jit bug reproduction
'use strict'
const environment = process.env.NODE_ENV || 'development'
const isProd = environment.includes('production')
const config = require('config')
const path = require('path')
const AutoLoad = require('fastify-autoload')
const mercurius = require('mercurius')
const gqSchema = require('./graphql/schema')
@emanuelet
emanuelet / script.sh
Created December 6, 2019 04:36
Fetch all the Google App Engine IP Ranges
dig +short -t TXT _cloud-netblocks1.googleusercontent.com | grep -Po 'ip4:\K\S+' >> ips.txt
dig +short -t TXT _cloud-netblocks2.googleusercontent.com | grep -Po 'ip4:\K\S+' >> ips.txt
dig +short -t TXT _cloud-netblocks3.googleusercontent.com | grep -Po 'ip4:\K\S+' >> ips.txt
dig +short -t TXT _cloud-netblocks4.googleusercontent.com | grep -Po 'ip4:\K\S+' >> ips.txt
dig +short -t TXT _cloud-netblocks5.googleusercontent.com | grep -Po 'ip4:\K\S+' >> ips.txt
@emanuelet
emanuelet / JacksonParser.java
Created March 20, 2018 15:44
Working JacksonXML Parser for Hawk 2+
import android.text.TextUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
import com.orhanobut.hawk.Parser;
import java.io.IOException;
import java.lang.reflect.Type;
@emanuelet
emanuelet / ExampleFragment.java
Created April 11, 2016 04:41
Populating ListView (or RecyclerView) based on Firebase cross-referenced results with a Geofire node
public class ExampleFragment extends Fragment implements GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener,
ResultCallback<LocationSettingsResult>,
SharedPreferences.OnSharedPreferenceChangeListener {
private Callbacks mCallbacks;
private Snackbar snackbar;
public interface Callbacks {
/**
@emanuelet
emanuelet / MainActivity.java
Created April 10, 2016 05:50
Integrating Facebook Comments Plugin with Android Webview
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Bind(R.id.commentsView)
WebView comments;
@Bind(R.id.webview_frame)
FrameLayout mContainer;
private String url = "http://www.example.news";
@emanuelet
emanuelet / ExampleAdapter.java
Last active September 16, 2017 12:20
Generic List Adapter for Firebase
/**
* This class is an example of how to use FirebaseListAdapter. It uses the ExampleObject class to encapsulate the
* data for each individual chat message
*/
public class ExampleAdapter extends FirebaseListAdapter<ExampleObject> {
@InjectView(R.id.example_list_item)
TextView exampleView;
public DealListAdapter(Query ref, Activity activity, int layout) {
super(ref, ExampleObject.class, layout, activity);
@emanuelet
emanuelet / build.gradle
Created April 15, 2015 05:33
Gradle Versioning + Version Increment Task
[...]
def vFile = new File( 'version.properties' )
Properties props = new Properties()
props.load( new FileInputStream( vFile ) )
def versionMajor = props.get( 'versionMajor' ).toInteger()
def versionMinor = props.get( 'versionMinor' ).toInteger()
def versionPatch = props.get( 'versionPatch' ).toInteger()
[...]
defaultConfig {
...