Skip to content

Instantly share code, notes, and snippets.

@sungitly
sungitly / DuplicatesRemoval.java
Last active April 20, 2018 16:59
Several approach to remove duplicates from list of beans in Java
import org.eclipse.jetty.util.ConcurrentHashSet;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import io.reactivex.Observable;
import static java.util.Comparator.comparing;
@sungitly
sungitly / BatteryUsage.java
Created March 30, 2016 02:52
Collect Android Battery Usage
private void logBatteryInfoByApi() {
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = MainActivity.this.registerReceiver(null, ifilter);
assert batteryStatus != null;
Log.e(LOG_TAG, "STATUS: " + String.valueOf(batteryStatus.getIntExtra(BatteryManager
.EXTRA_STATUS, -1)));
Log.e(LOG_TAG, "PLUG: " + String.valueOf(batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED,
-1)));
Log.e(LOG_TAG, "LEVEL: " + String.valueOf(batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL,
@sungitly
sungitly / restartfinder.sh
Created March 26, 2015 14:02
Shell Script To Restart Finder
#!/bin/bash
kill -sighup `ps -e | grep Finder.app | grep -v grep | cut -c1-6`
@sungitly
sungitly / datezhcn.py
Created March 20, 2015 13:23
Python 中文日期 格式化
# -*- coding: utf-8 -*-
date.today().strftime(u'%Y年%m月%d日'.encode('utf-8')).decode('utf-8')
#输出:2012年11月27日
@sungitly
sungitly / readable_time.php
Created March 9, 2015 14:19
Convert seconds to human readable time duration
static $periods = array(
'天' => 86400,
'小时' => 3600,
'分钟' => 60,
'秒' => 1
);
public function friendlyTime($timestamp)
{
$timeStr = '';
@sungitly
sungitly / datetime_string2unix.py
Created March 5, 2015 05:00
Convert String Datetime To Unix Time
DATE_FORMATTER = '%Y-%m-%d %H:%M:%S'
def unix_time(dt):
epoch = datetime.utcfromtimestamp(0)
delta = dt - epoch
return delta.total_seconds()
def unix_time_millis(dt):
return unix_time(dt) * 1000.0
@sungitly
sungitly / jsonencoder.py
Created January 26, 2015 16:00
python json encoder to encode object json with exclusions
class ComplexEncoder(json.JSONEncoder):
def __init__(self, skipkeys=False, ensure_ascii=True,
check_circular=True, allow_nan=True, sort_keys=False,
indent=None, separators=None, encoding='utf-8', default=None, excluded=None):
super(ComplexEncoder, self).__init__(skipkeys, ensure_ascii, check_circular, allow_nan, sort_keys, indent,
separators, encoding, default)
self.excluded = excluded
def default(self, obj):
if hasattr(obj, "__dict__"):
@sungitly
sungitly / todict.py
Last active November 15, 2023 21:04
convert python object recursively to dict
def todict(obj, classkey=None):
if isinstance(obj, dict):
data = {}
for (k, v) in obj.items():
data[k] = todict(v, classkey)
return data
elif hasattr(obj, "_ast"):
return todict(obj._ast())
elif hasattr(obj, "__iter__"):
return [todict(v, classkey) for v in obj]
@sungitly
sungitly / sign_android.sh
Created April 1, 2014 09:27
Android Signning
// Generate a private key
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
// View generated key store
keytool -list -v -keystore release.keystore
// Sign the application
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
@sungitly
sungitly / android_tips.md
Created March 21, 2014 12:41
Android Tips

px = dp * (dpi / 160)