Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View blacklee's full-sized avatar

Black Lee blacklee

  • Hangzhou, China
View GitHub Profile
@blacklee
blacklee / aqi.lua
Created April 9, 2019 07:27
Hammerspoon-AQI
local url = "https://api.waqi.info/feed/@UID/?token=Demo-Token"
-- fill your UID and token
local menubar = hs.menubar.new()
function getColor(aqi)
if aqi <= 50 then
return {red = 0, blue = 0, green = 1}
end
if aqi <= 100 then
@blacklee
blacklee / SpeechVoiceFromLocaleLanguageCode.m
Created April 10, 2018 05:31
Get AVSpeechSynthesisVoice by [NSLocale preferredLanguages]
AVSpeechSynthesisVoice *SpeechVoiceFromLocaleLanguageCode(NSString *langCode) {
NSArray<NSString*> *langCodeParts = [[langCode stringByReplacingOccurrencesOfString:@"-" withString:@"_"] componentsSeparatedByString:@"_"];
NSArray<AVSpeechSynthesisVoice*> *availTTSVoices = [AVSpeechSynthesisVoice speechVoices];
NSMutableArray<AVSpeechSynthesisVoice*> *filteredVoices = [NSMutableArray array];
AVSpeechSynthesisVoice *selectedVoice = nil, *defaultVoice = nil;
// first round filter, uses prefix.
for (AVSpeechSynthesisVoice *voice in availTTSVoices) {
if (!defaultVoice && [voice.language isEqualToString:@"en-US"]) {
defaultVoice = voice;
}
@blacklee
blacklee / AppDelegate.m
Created August 30, 2016 03:02
Using this partial codes to share test data across all simulators in your Mac.
- (void)setupSharedDirectoryForMacTest {
#ifndef DEBUG
return;
#endif
#ifndef TARGET_IPHONE_SIMULATOR
return;
#endif
NSLog(@"--------------------------------------------------------------------------------------------------------");
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
@blacklee
blacklee / ffmpeg-to-480p.sh
Created February 19, 2016 13:43
ffmpeg convert video to 480p
ffmpeg -i input.mp4 -s hd480 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4
set -e
set -x
input=$1
output=$2
input_cert=$(echo $input)-cert.p12
input_key=$(echo $input)-key.p12
input_file_not_exists=0
@blacklee
blacklee / gist:11293269
Created April 25, 2014 15:18
create a "fat" libary
lipo -create libdevice.a libsimulator.a -output libcombined.a
@blacklee
blacklee / gist:9045300
Created February 17, 2014 05:41
performselectoronmainthread and get return value
// http://stackoverflow.com/a/3346157/490794
// call
NSMutableDictionary *myDict;
[object performSelectorOnMainThread:@selector(getElements:)
withObject:&myDict waitUntilDone:YES];
// define
- (void)getElements:(NSMutableDictionary **)objects;
@blacklee
blacklee / MobClickOpenUDID+Swizzled.m
Created January 21, 2014 07:42
使用友盟统计分析提交时被拒的一种解决方案
#import "MobClickOpenUDID+Swizzled.h"
#import <objc/message.h>
#import <JRSwizzle.h> // Swizzle 类方法,这样可以避免类去调用某些Apple可能不允许的方法,通过审核
#import "YourDevice.h" // 你的设备相关类,用于生成自己的Device Unique ID
#import <RegExCategories.h> // 正则表达式
#import <NSString+Ruby.h> // 字符串工具类
static NSString * const kOpenUDIDKey = @"OpenUDID";
static NSString * const kOpenUDIDSlotKey = @"OpenUDID_slot";
@blacklee
blacklee / gist:8470154
Created January 17, 2014 08:34
git tag command
create:
git tag tagname
push to master:
git push --tags
list tags:
git tag --list
git tag -l
@blacklee
blacklee / gist:8108962
Last active January 1, 2016 06:59
when layoutSubviews do not work
当 layoutSubviews 里设置了 frame 但是界面不刷新时,检查一下 xib 里面是不是勾上了 use Autolayout ,把这个去掉就好
When you have set frame in layoutSubviews but it do not refresh the view, we should uncheck the [use Autolayout] in xib.