Skip to content

Instantly share code, notes, and snippets.

@gurdotan
gurdotan / MyDtoSerializer.java
Created August 2, 2016 07:41
Jackson Custom JSON Serializer
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
public class UiNotificationSerializer extends JsonSerializer<MyDto> {
@Override public void serialize(MyDto dto, JsonGenerator generator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
@gurdotan
gurdotan / mongo_alias.sh
Created June 14, 2016 12:31
SSH - connect to MongoDB with authentication remotely
alias mongo-connect="echo \"db.auth('user','password')\" | pbcopy; ssh -t dashboard \"mongo 10.0.1.107:27017/db_name\""
@gurdotan
gurdotan / s3-folder-range-size.sh
Last active June 1, 2016 13:03
S3: sum size of all objects in bucket/folder
IFS=$'\n'; arr=(`for d in {0..182}; do date -d "2015-12-01 + $d days" +'%Y%m%d'; done`); for i in ${arr[@]} ; do aws s3 ls s3://bucket-name/production/dt=$i/ | tr -s " " | cut -f3 -d" " | paste -sd+ - | bc | numfmt --to=iec-i --suffix=B --padding=7 ; done
if (GrowInsights.UserInsights.PayInsights.PayRankByGenre[Genre.Educational] > 3) {
// Adapt gameplay to a potential payer
// Examples: offer welcome bundle, block ads,
// report user as payer to your push notification platform etc.
}
@gurdotan
gurdotan / gist:b35600a7dcea167c12c8
Created April 22, 2015 11:18
MongoDB: most popular email domains
var emails = {};
db.users.find().sort({_id: -1}).forEach(function(d) {
var email = d.email.split('@')[1];
emails[email] |= 0;
emails[email]++;
});
var sortable = [];
for (var email in emails)
sortable.push([email, emails[email]])
@gurdotan
gurdotan / gist:47e23a480348a02b754c
Created April 16, 2015 09:37
MongoDB aggregation pipeline: group by date (ISO format)
db.users.aggregate(
{
"$match": {
created_at: { $gte: ISODate("2014-09-01T00:00:00Z") }
}
},
{
"$project": {
_id: 0,
"isoDate": { $substr: [ "$created_at", 0, 10 ] }
@gurdotan
gurdotan / gist:5b4418b9ff2be6f17a38
Last active August 29, 2015 14:18
MongoDB: Find users by creation date
db.users.find({created_at: {$gt: new ISODate('2015-03-29 00:53:55.997Z')}}).sort({_id: 1}).forEach(function(d) {
var firstName = d.name.split(/\s+/)[0];
var match = d.name.match(/.*\s+(.*)/);
var lastName = match ? match[1] : '';
print(d.email + '\t' + firstName + '\t' + lastName);
});
@gurdotan
gurdotan / package.json
Created March 23, 2015 10:43
Unity Package Mass Labelling script - Node.js
{
"name": "unity-mass-labeler",
"version": "0.0.1",
"description": "",
"main": "mass-labeler.js",
"dependencies": {
"lodash": "^3.5.0",
"recursive-readdir": "^1.2.0"
},
"devDependencies": {},
@gurdotan
gurdotan / economy.json
Created December 29, 2014 09:58
Example SOOMLA economy metadata
{
"currencyPacks" : [
{
"purchasableItem" : {
"marketItem" : {
"consumable" : 1,
"price" : 1.99,
"androidId" : "com.my.game.packs.bag_of_coins",
"iosId" : "com.my.game.packs.bag_of_coins"
},
@gurdotan
gurdotan / slc-initd-example.sh
Created December 24, 2014 10:36
Node.js SLC init.d daemon script example
#!/usr/bin/env bash
#
# An example init script for running a Node.js process as a service
# using Strongloop's slc as the process monitor. For more configuration options
# associated with slc, see: http://docs.strongloop.com/display/public/SLC/slc+run.
# This script assumes you've installed slc globally with `npm install -g strongloop`.
#
# You will need to set the environment variables noted below to conform to
# your use case, and change the init info comment block.
#