vk-com / kphp-kdb Goto Github PK
View Code? Open in Web Editor NEWVK-KittenPHP/DB/Engine suite
License: GNU General Public License v2.0
VK-KittenPHP/DB/Engine suite
License: GNU General Public License v2.0
Спрятать/вернуть файл
$r = get ("hide{$volume_id},{$local_id_hex}");
После выполнения, этой команды storage-engine будет возвращать однопиксельное прозрачный png файл, вместо указанного изображения. Чтобы отменить, команду ее нужно вызвать повторно.
$r = get ("valid{$volume_id},{$local_id_hex},{$secret}")
Возвращает '0', если файл был спрятан и '1' в противном случае. В PHP возвращается false, если указанного тома не существует.
Не работает команда "valid{$volume_id},{$local_id_hex},{$secret}" более того, ее описание отсутствует в storage-engine.c. То есть функция отсутствует вообще.
Hello,
I tried to evaluate it, and tried to build it on debian 8.
Makefile not working at all.
Next question: Is there somewhere a definition of the supported language parts?
Thanks
Выложите пожалуйста пример файла передаваемого dbproxy;
Спасибо!
I been trying to run Strapi new server on my visual studio terminal and just been having errors the errors say; strapi new can only be called in an empty directory some please help me.
Если, например, для команд hints.getHints или hints.setRating указать в качестве rating_num что-либо, кроме нуля, выпадает вот такая ошибка (rating_num = 10):
array(2) {
["__error"]=>
string(19) "Wrong rating num <rating_num, for example, 10>"
["__error_code"]=>
int(-2006)
}
Это значит, что любые rating_num, кроме 0, вообще использоваться не могут
После использования hints.setRatingState с любым значением rating_enabled, рейтинг "замораживается" на значении.
Прикладываю тестовый файл tmp.php, для того, чтобы он заработал, надо изменить первые две переменные на соответствующие значения: http://pastebin.com/ZMET1LNZ (GitHub не поддерживает вложения, не являющиеся картинками) и лог:
http://pastebin.com/KMwKfnx6
При посылке запроса ('_' => 'hints.setInfo', 'user_id' => <any correct user_id>, 'info' => 4294967297)
, должна вызываться та же ошибка, что и при присвоении любого другого некорректного значения:
array(2) {
["result"]=>
bool(false)
["_"]=>
string(1) "_"
}
Но возвращается некорректный положительный ответ:
array(2) {
["result"]=>
bool(true)
["_"]=>
string(1) "_"
}
После этих действий, info выставляется в 1 (== 4294967297 mod (2^32))
vv/am-amortization.c:59:8: error: redefinition of ‘time_amortization_table_fast_exp’
double time_amortization_table_fast_exp (time_amortization_table_t *self, int dt) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from vv/am-amortization.c:23:0:
vv/am-amortization.h:42:22: note: previous definition of ‘time_amortization_table_fast_exp’ was here
extern inline double time_amortization_table_fast_exp (time_amortization_table_t *self, int dt) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Makefile:280: recipe for target 'objs/vv/am-amortization.o' failed
make: *** [objs/vv/am-amortization.o] Error 1
make: *** Waiting for unfinished jobs....
Если закомментировать одно из объявлений, получаю ошибку на этапе линковки:
objs/vv/am-amortization.o: In function `time_amortization_table_fast_exp':
/home/mutex/src/kphp-kdb/vv/am-amortization.h:44: multiple definition of `time_amortization_table_fast_exp'
objs/targ/targ-weights.o:/home/mutex/src/kphp-kdb/vv/am-amortization.h:44: first defined here
collect2: error: ld returned 1 exit status
Makefile:329: recipe for target 'objs/bin/targ-engine' failed
make: *** [objs/bin/targ-engine] Error 1
make: *** Waiting for unfinished jobs....
[mutex@hp kphp-kdb]$ (master)*$ mc
Никогда не видел настолько плохо реализованный форк ХипХопа, и вот опять.
При создании объекта с текстом, например, "Hello, World!!!", при попытке извлечь текст (который, может быть, будет показан пользователю) при помощи любой из функций hints.(getObjectText|getHintsText|getHintsFull) текст возвращается в обработанном формате lowercased_word1+word2+..., то есть для "Hello, World!!!" это "hello+world+".
Непонятно, является ли это корректным поведением.
Объясните пожалуйста как создать подключение к MySQL?
Из kphp напрямую подключиться MySQL не получается. С db-proxy соединение происходит замечательно, но не понятно что делать дальше.
В MySQL получилось пролезть из db-proxy командой connect test_base localhost;
Но из KPHP ни как.
Напишите пожалуйста как должен выглядеть "cluster-descr-file" и как в kphp декларировать базу данных.
Спасибо.
I created another thread... That Russian jibber jabber was scaring me over there...
All crews standby, captain here speaking.
require ("/var/www/cs7777/data/www/lib/flex.php");
$res = array ();
$res = setupRusFlex (0, $res);
create_lang (0, $res);
require ("/var/www/cs7777/data/www/lib/nonrus_flex.php");
Ребята, хардкод. Не собирается расширение, руками в том числе через:
/home/vidog/kphp/repo/kphp-kdb/vkext/vkext.c: In function 'sigabrt_debug_handler':
/home/vidog/kphp/repo/kphp-kdb/vkext/vkext.c:489:9: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
/home/vidog/kphp/repo/kphp-kdb/vkext/vkext.c: In function 'sigsegv_debug_handler':
/home/vidog/kphp/repo/kphp-kdb/vkext/vkext.c:483:9: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
/home/vidog/kphp/repo/kphp-kdb/vkext/vkext.c: In function 'print_backtrace':
/home/vidog/kphp/repo/kphp-kdb/vkext/vkext.c:477:9: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
/home/vidog/kphp/repo/kphp-kdb/vkext/vkext.c:479:9: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
cc1: all warnings being treated as errors
make: *** [vkext.lo] Error 1
Затухание происходит по экспоненциальному закону с основанием "1/e" вместо обычного (для понятия полураспад) "1/2".
Fix: hints-data.tl:
-int RATING_NORM = 4 * 7 * 24 * 60 * 60;
+int RATING_NORM = 4 * 7 * 24 * 60 * 60 * log(2);
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost kphp-kdb]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@localhost kphp-kdb]#
[root@localhost kphp-kdb]# gcc -v
Используются внутренние спецификации.
Целевая архитектура: x86_64-redhat-linux
Параметры конфигурации: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Модель многопоточности: posix
gcc версия 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)
[root@localhost kphp-kdb]#
[root@localhost kphp-kdb]# rpm -qa|grep readline
compat-readline5-5.2-17.1.el6.x86_64
readline-static-6.0-4.el6.x86_64
compat-readline5-devel-5.2-17.1.el6.x86_64
readline-devel-6.0-4.el6.x86_64
readline-6.0-4.el6.x86_64
[root@localhost kphp-kdb]# rpm -qa|grep termcap
compat-libtermcap-2.0.8-49.el6.x86_64
compat-libtermcap-2.0.8-49.el6.i686
mingw32-termcap-1.3.1-8.el6.5.noarch
[root@localhost kphp-kdb]#
cc -Wall -O3 -m64 -march=core2 -mfpmath=sse -mssse3 -ggdb -fno-strict-aliasing -fno-strict-overflow -fwrapv -DCOMMIT="f9a2f927aa97612d0c74a0e296eda8f414f13cce" -I common -I binlog -I net -I kfs -I drinkless -I skat -I vv -I objs -I . -I/usr/include/readline5/ -c -MP -MD -MF dep/targ/targ-engine.d -MQ objs/targ/targ-engine.o -o objs/targ/targ-engine.o targ/targ-engine.c
In file included from targ/targ-engine.c:66:
objs/TL/constants.h:217:1: warning: "TL__T_E_X_T__G_E_T_M_E_S_SA_G_E_E_X_T_RA" redefined
objs/TL/constants.h:213:1: warning: this is the location of the previous definition
objs/TL/constants.h:218:1: warning: "TL__T_E_X_T__S_E_T_M_E_S_SA_G_E_E_X_T_RA" redefined
objs/TL/constants.h:214:1: warning: this is the location of the previous definition
objs/TL/constants.h:219:1: warning: "TL__T_E_X_T__I_N_C_R_M_E_S_SA_G_E_E_X_T_RA" redefined
objs/TL/constants.h:215:1: warning: this is the location of the previous definition
objs/TL/constants.h:220:1: warning: "TL__T_E_X_T__D_E_C_R_M_E_S_SA_G_E_E_X_T_RA" redefined
objs/TL/constants.h:216:1: warning: this is the location of the previous definition
targ/targ-engine.c: В функции ‘tl_do_prices’:
targ/targ-engine.c:2139: ошибка: ‘TL_TARG_PRICES_RESULT’ не описан (первое использование в этой функции)
targ/targ-engine.c:2139: ошибка: (Сообщение о неописанном идентификаторе выдается один раз
targ/targ-engine.c:2139: ошибка: для каждой функции, в которой он используется.)
targ/targ-engine.c: В функции ‘tl_do_ad_pricing’:
targ/targ-engine.c:2179: ошибка: ‘TL_TARG_PRICES_RESULT’ не описан (первое использование в этой функции)
targ/targ-engine.c: В функции ‘targ_parse_function’:
targ/targ-engine.c:3006: ошибка: ‘TL_TARG_AD_ENABLE’ не описан (первое использование в этой функции)
targ/targ-engine.c:3008: ошибка: ‘TL_TARG_AD_ENABLE_PRICE’ не описан (первое использование в этой функции)
targ/targ-engine.c:3010: ошибка: ‘TL_TARG_AD_DISABLE’ не описан (первое использование в этой функции)
targ/targ-engine.c:3012: ошибка: ‘TL_TARG_AD_SET_CTR’ не описан (первое использование в этой функции)
targ/targ-engine.c:3014: ошибка: ‘TL_TARG_AD_SET_SUMP’ не описан (первое использование в этой функции)
targ/targ-engine.c:3016: ошибка: ‘TL_TARG_AD_SET_CTR_SUMP’ не описан (первое использование в этой функции)
targ/targ-engine.c:3018: ошибка: ‘TL_TARG_AD_SET_AUD’ не описан (первое использование в этой функции)
targ/targ-engine.c:3020: ошибка: ‘TL_TARG_AD_LIMITED_VIEWS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3022: ошибка: ‘TL_TARG_AD_VIEWS_RATE_LIMIT’ не описан (первое использование в этой функции)
targ/targ-engine.c:3024: ошибка: ‘TL_TARG_AD_SITES’ не описан (первое использование в этой функции)
targ/targ-engine.c:3026: ошибка: ‘TL_TARG_AD_SET_FACTOR’ не описан (первое использование в этой функции)
targ/targ-engine.c:3028: ошибка: ‘TL_TARG_AD_SET_DOMAIN’ не описан (первое использование в этой функции)
targ/targ-engine.c:3030: ошибка: ‘TL_TARG_AD_SET_GROUP’ не описан (первое использование в этой функции)
targ/targ-engine.c:3032: ошибка: ‘TL_TARG_AD_SET_CATEGORIES’ не описан (первое использование в этой функции)
targ/targ-engine.c:3034: ошибка: ‘TL_TARG_AD_CLICKS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3036: ошибка: ‘TL_TARG_AD_CTR’ не описан (первое использование в этой функции)
targ/targ-engine.c:3038: ошибка: ‘TL_TARG_AD_SUMP’ не описан (первое использование в этой функции)
targ/targ-engine.c:3040: ошибка: ‘TL_TARG_AD_CTR_SUMP’ не описан (первое использование в этой функции)
targ/targ-engine.c:3042: ошибка: ‘TL_TARG_AD_MONEY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3044: ошибка: ‘TL_TARG_AD_VIEWS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3046: ошибка: ‘TL_TARG_AD_RECENT_VIEWS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3048: ошибка: ‘TL_TARG_RECENT_VIEWS_STATS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3050: ошибка: ‘TL_TARG_RECENT_AD_VIEWERS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3052: ошибка: ‘TL_TARG_AD_INFO’ не описан (первое использование в этой функции)
targ/targ-engine.c:3054: ошибка: ‘TL_TARG_AD_QUERY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3056: ошибка: ‘TL_TARG_USER_VIEW’ не описан (первое использование в этой функции)
targ/targ-engine.c:3058: ошибка: ‘TL_TARG_USER_GROUPS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3060: ошибка: ‘TL_TARG_USER_CLICK’ не описан (первое использование в этой функции)
targ/targ-engine.c:3062: ошибка: ‘TL_TARG_USER_FLAGS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3064: ошибка: ‘TL_TARG_USER_CLICKED_AD’ не описан (первое использование в этой функции)
targ/targ-engine.c:3066: ошибка: ‘TL_TARG_DELETE_GROUP’ не описан (первое использование в этой функции)
targ/targ-engine.c:3068: ошибка: ‘TL_TARG_TARGET’ не описан (первое использование в этой функции)
targ/targ-engine.c:3070: ошибка: ‘TL_TARG_PRICES’ не описан (первое использование в этой функции)
targ/targ-engine.c:3072: ошибка: ‘TL_TARG_AD_PRICING’ не описан (первое использование в этой функции)
targ/targ-engine.c:3074: ошибка: ‘TL_TARG_TARG_AUDIENCE’ не описан (первое использование в этой функции)
targ/targ-engine.c:3076: ошибка: ‘TL_TARG_AUDIENCE’ не описан (первое использование в этой функции)
targ/targ-engine.c:3078: ошибка: ‘TL_TARG_SEARCH’ не описан (первое использование в этой функции)
targ/targ-engine.c:3080: ошибка: ‘TL_TARG_SET_SEX’ не описан (первое использование в этой функции)
targ/targ-engine.c:3081: ошибка: ‘TL_TARG_SET_OPERATOR’ не описан (первое использование в этой функции)
targ/targ-engine.c:3082: ошибка: ‘TL_TARG_SET_BROWSER’ не описан (первое использование в этой функции)
targ/targ-engine.c:3083: ошибка: ‘TL_TARG_SET_REGION’ не описан (первое использование в этой функции)
targ/targ-engine.c:3084: ошибка: ‘TL_TARG_SET_HEIGHT’ не описан (первое использование в этой функции)
targ/targ-engine.c:3085: ошибка: ‘TL_TARG_SET_SMOKING’ не описан (первое использование в этой функции)
targ/targ-engine.c:3086: ошибка: ‘TL_TARG_SET_ALCOHOL’ не описан (первое использование в этой функции)
targ/targ-engine.c:3087: ошибка: ‘TL_TARG_SET_PPRIORITY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3088: ошибка: ‘TL_TARG_SET_IIOTHERS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3089: ошибка: ‘TL_TARG_SET_HIDDEN’ не описан (первое использование в этой функции)
targ/targ-engine.c:3090: ошибка: ‘TL_TARG_SET_CVISITED’ не описан (первое использование в этой функции)
targ/targ-engine.c:3091: ошибка: ‘TL_TARG_SET_GCOUNTRY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3092: ошибка: ‘TL_TARG_SET_PRIVACY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3093: ошибка: ‘TL_TARG_SET_POLITICAL’ не описан (первое использование в этой функции)
targ/targ-engine.c:3094: ошибка: ‘TL_TARG_SET_MSTATUS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3095: ошибка: ‘TL_TARG_SET_TIMEZONE’ не описан (первое использование в этой функции)
targ/targ-engine.c:3096: ошибка: ‘TL_TARG_SET_RATE’ не описан (первое использование в этой функции)
targ/targ-engine.c:3097: ошибка: ‘TL_TARG_SET_CUTE’ не описан (первое использование в этой функции)
targ/targ-engine.c:3098: ошибка: ‘TL_TARG_SET_FLAGS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3099: ошибка: ‘TL_TARG_SET_USER_SINGLE_GROUP_TYPE’ не описан (первое использование в этой функции)
targ/targ-engine.c:3100: ошибка: ‘TL_TARG_SET_USER_LANG’ не описан (первое использование в этой функции)
targ/targ-engine.c:3101: ошибка: ‘TL_TARG_SET_CUSTOM’ не описан (первое использование в этой функции)
targ/targ-engine.c:3103: ошибка: ‘TL_TARG_SET_RATES’ не описан (первое использование в этой функции)
targ/targ-engine.c:3105: ошибка: ‘TL_TARG_SET_USERNAME’ не описан (первое использование в этой функции)
targ/targ-engine.c:3107: ошибка: ‘TL_TARG_SET_USER_GROUP_TYPES’ не описан (первое использование в этой функции)
targ/targ-engine.c:3109: ошибка: ‘TL_TARG_SET_COUNTRY_CITY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3111: ошибка: ‘TL_TARG_SET_BIRTHDAY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3113: ошибка: ‘TL_TARG_SET_RELIGION’ не описан (первое использование в этой функции)
targ/targ-engine.c:3115: ошибка: ‘TL_TARG_SET_HOMETOWN’ не описан (первое использование в этой функции)
targ/targ-engine.c:3117: ошибка: ‘TL_TARG_SET_PROPOSAL’ не описан (первое использование в этой функции)
targ/targ-engine.c:3119: ошибка: ‘TL_TARG_SET_SCHOOL’ не описан (первое использование в этой функции)
targ/targ-engine.c:3121: ошибка: ‘TL_TARG_SET_EDUCATION’ не описан (первое использование в этой функции)
targ/targ-engine.c:3123: ошибка: ‘TL_TARG_SET_COMPANY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3125: ошибка: ‘TL_TARG_SET_MILITARY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3127: ошибка: ‘TL_TARG_SET_ADDRESS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3129: ошибка: ‘TL_TARG_SET_INTEREST’ не описан (первое использование в этой функции)
targ/targ-engine.c:3131: ошибка: ‘TL_TARG_SET_USER_GROUP’ не описан (первое использование в этой функции)
targ/targ-engine.c:3133: ошибка: ‘TL_TARG_DELETE_USER’ не описан (первое использование в этой функции)
targ/targ-engine.c:3135: ошибка: ‘TL_TARG_DELETE_EDUCATION’ не описан (первое использование в этой функции)
targ/targ-engine.c:3136: ошибка: ‘TL_TARG_DELETE_SCHOOLS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3137: ошибка: ‘TL_TARG_DELETE_WORK’ не описан (первое использование в этой функции)
targ/targ-engine.c:3138: ошибка: ‘TL_TARG_DELETE_ADDRESSES’ не описан (первое использование в этой функции)
targ/targ-engine.c:3139: ошибка: ‘TL_TARG_DELETE_MILITARY’ не описан (первое использование в этой функции)
targ/targ-engine.c:3140: ошибка: ‘TL_TARG_DELETE_GROUPS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3141: ошибка: ‘TL_TARG_DELETE_POSITIVE_GROUPS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3142: ошибка: ‘TL_TARG_DELETE_NEGATIVE_GROUPS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3143: ошибка: ‘TL_TARG_DELETE_LANGS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3144: ошибка: ‘TL_TARG_DELETE_PROPOSAL’ не описан (первое использование в этой функции)
targ/targ-engine.c:3145: ошибка: ‘TL_TARG_DELETE_INTERESTS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3147: ошибка: ‘TL_TARG_DELETE_USER_GROUP’ не описан (первое использование в этой функции)
targ/targ-engine.c:3149: ошибка: ‘TL_TARG_DELETE_USER_GROUPS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3151: ошибка: ‘TL_TARG_SET_USER_GROUPS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3153: ошибка: ‘TL_TARG_ADD_USER_GROUPS’ не описан (первое использование в этой функции)
targ/targ-engine.c:3155: ошибка: ‘TL_TARG_USER_VISIT’ не описан (первое использование в этой функции)
targ/targ-engine.c:3157: ошибка: ‘TL_TARG_DELETE_USER_LANG’ не описан (первое использование в этой функции)
targ/targ-engine.c:3159: ошибка: ‘TL_WEIGHTS_SEND_SMALL_UPDATES’ не описан (первое использование в этой функции)
targ/targ-engine.c:3161: ошибка: ‘TL_WEIGHTS_SEND_UPDATES’ не описан (первое использование в этой функции)
targ/targ-engine.c:3163: ошибка: ‘TL_TARG_USER_ADS’ не описан (первое использование в этой функции)
make: *** [objs/targ/targ-engine.o] Ошибка 1
Можно детальную инструкцию по сборке и компиляции на Linux в частности для Suse или Slackware, или хотя бы ссылку на документацию. В доках может криво смотрел но не нашел.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.