Skip to content

Instantly share code, notes, and snippets.

View deeTEEcee's full-sized avatar

David Chen deeTEEcee

View GitHub Profile
@deeTEEcee
deeTEEcee / README.md
Last active February 19, 2020 01:54
Gradle + Kotlin Helpers

Dependency management

With any new projects using gradle, this is a key point to start. Try using the 'com.palantir.consistent-versions' plugin.

Gradle helper methods

I ran into an issue where a gradle plugin had stated they had a method called 'getVersion' but I couldn't use it. This was the solution to retrieve that method that the plugin had supported:

val packageGetVersion : groovy.lang.Closure<String> = project.ext["getVersion"] as groovy.lang.Closure<String>
doLast {
@deeTEEcee
deeTEEcee / CustomDoclet.java
Created February 10, 2020 03:03
Doclet for filtering public classes from JavaDoc
package com.sightmachine.doclet;
import java.lang.reflect.Array;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.List;
@deeTEEcee
deeTEEcee / JavadocFilter.java
Last active August 9, 2019 03:50 — forked from benjchristensen/JavadocFilter.java
Doclet for filtering public classes from Javadoc
import java.lang.reflect.Array;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.List;
import com.sun.javadoc.Doc;
import com.sun.javadoc.DocErrorReporter;
@deeTEEcee
deeTEEcee / RegexPractice.java
Created July 23, 2019 22:04
regex thoughts
/*
Regex is interesting because I found out the following:
* It's pretty easy to translate patterns into actual variables.
* Even if you have repeated patterns, those can easily go into variables. (e.g: `(<some_pattern>)+` can be translated into an infinite number of variables)
* Some languages have a multiline mode that allow you to apply regex line-by-line. That has the benefit
of giving you more easily readable options.
To see a better example, look at the following code.
@deeTEEcee
deeTEEcee / basics.txt
Last active March 25, 2021 16:11
Basic Developer Knowledge
### Databases
* One does not need to add database indexes for every field. I think one way of thinking about it is use the ones that people are querying that don't also already have indexes. If there is a multi-field query that's commonly used and there's already indexes, you probably don't need to add another index for a new field you add since that query already narrows it down for you. (There's a lot more to read to understand this)
#### Internal
* SSD's vs Hard Disk
*
* Writes have problems on both sides.
* Access Patterns - Sequential vs. Random
Links
@deeTEEcee
deeTEEcee / pyamqp_example.py
Created March 5, 2019 17:39
py-amqp examples
# Created these after looking at unit tests. Couldn't really find any other online examples.
from io import BytesIO
from amqp import Connection
import pprint
import pickle
connection = Connection()
channel = connection.channel()
message = channel.basic_get(queue='gegroby/ma.model.cycle.finalcal/analytics_finalcal/')
@deeTEEcee
deeTEEcee / mongo-profiling.md
Last active July 25, 2018 18:04
mongo cheatsheet

Missing Indexes

db.getCollection('system.profile').find({'ns': 'db.collection_name', 'planSummary': {'$not': /IXSCAN/}})

@deeTEEcee
deeTEEcee / devtools.md
Last active February 6, 2020 22:54
Useful Developer Tools
  • ngrok # for opening local ports to web
  • daff # tool for csv file comparisons. (a bit limited in csv file size)
  • xsv # tool for csv file parsing. (filtering, selecting certain columns, works well with massive sizes)
@deeTEEcee
deeTEEcee / functions.py
Created August 21, 2017 21:00
Python functions that could be useful
# surprised that python does not have something like this in the iterator class or something.
def get_subset_from_dict(dict_obj, *keys):
return dict((k, dict_obj[k]) for k in keys)
@deeTEEcee
deeTEEcee / flatten.rb
Last active February 20, 2017 18:12
Ruby internals
# an imitation of ruby's flatten which takes in a 2nd argument
def flatten(array, n=nil)
n = -1 if !n
while n != 0
is_flat = true
array = array.inject([]) do |acc, x|
if x.is_a?(Array)
is_flat = false
acc + x
else