坚信科学,分享技术

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

优化器、激活函数、评价函数

利用深度学习解决直播支付风控

54chen的2016总结和2017预测

中国、印度、印尼在线支付接入、风控和靠谱度对比

小米大树part3:产品进度之痛

小米大树part2:测试之痛

小米大树part1.5:基础架构之痛答疑

小米大树part1:基础架构之痛

微信支付api.mch.weixin.qq.com域名解析慢原因:ipv6

在c/c++中解决SHA1WithRSA/ras/X509的过程记录

一句话备忘

应该注意避免在查询中让MySQL进行自动类型转换,因为转换过程也会使索引变得不起作用。

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

LiteIM/FreePlus的取IP代码

这是LiteIM/FreePlus的取IP代码,感兴趣的朋友看看吧. runjin的是汇编版本,这是c版本,希望有更多的人能读懂.后来者,愿它对你有益.闪了. 源码: static const DWORD UnknownSig=0x1E3A86BA; static const LPSTR szQQUSER_DYNAMIC_DATA="QQUSER_DYNAMIC_DATA"; typedef void( *pPrepareDynData)(LPVOID IQQData,LPSTR szCmd,const DWORD* szSig,LPVOID* pDynamicData); VOID PrepareData(LPVOID IQQData,LPVOID* pDynamicData) { pPrepareDynData PrepareDynData=(pPrepareDynData)*(LONG *)(*(LONG *)IQQData+0x54); PrepareDynData(IQQData,szQQUSER_DYNAMIC_DATA,&UnknownSig,pDynamicData); } DWORD GetDyncDWORD(LPVOID DynamicData, int iOffset,LPCSTR szCmd) { DWORD dwRet=0; __asm { lea eax,dwRet push eax push szCmd mov eax, Dynam

Continue reading

Posted in WEB相关 | Tagged | Leave a comment

TCP连接:SYN ACK RST UTG PSH FIN

TCP的三次握手是怎么进行的:发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手;接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让发送端发送一个确认数据包,这是第二次握手;最后,发送端发送一个SYN=0,ACK=1的数据包给接收端,告诉它连接已被确认,这就是第三次握手。之后,一个TCP连接建立,开始通讯。 *SYN:同步标志 同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。在这里,可以把 TCP序列编号看作是一个范围从0到4,294,967,295的32位计数器。通过TCP连接交换的数据中每一个字节都经过序列编号。在TCP报头中的序列编号栏包括了TCP分段中第一个字节的序列编号。   *ACK:确认标志 确认编号(Acknowledgement Number)栏有效。大多数情况下该标志位是置位的。TCP报头内的确认编号栏内包含的确认编号(w+1,Figure-1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。 *RST:复位标志 复位标志有效。用于复位相应的TCP连接。 *URG:紧急标志 紧急(The urgent pointer) 标志有效。紧急标志置位, *PSH:推标志 该标志置位时,接收端不将该数据进行队列处理,而是尽可能快将数据转由应用处理。在处理 telnet 或 rlogin

Continue reading

Posted in linux | Tagged , | 1 Comment

NFS使用记录

第一步:#serviceconf 第二步:启动portmap和nfs(每次修改exports都要重启nfs才会生效) 第三步:#vi /etc/exports 第四步:/root 202.199.159.193(rw) option: ro 只读 rw 读写 noaccess 无权 第五步:在202.199.159.193这个IP的机器上,#mount 10.10.138.192:/root cc0cc/(如果不行可以试试把10.10.138.192的iptables关掉) 提示:由于它的认证机制是基于IP地址的,因而容易被ip-spoofing攻击.一般除非必要不要打开这项服务.

Continue reading

Posted in linux | Tagged , | 1 Comment

intel汇编与AT&T的区别

[文章作者:陈臻 本文版本:v1.0 最后修改:2006.10.26 转载请注明原文链接:http://www.54chen.com/c/30] 在设计mynet的时候用到这个,其实二者区别不是太多,总结一下有下面几点: 1.intel的mov 变成了movb movl mov (后面对应8 16 32位的操作位) ) 2.寄存器都加百分号 3.操作都是反过来的:mov al,cl(inter)==movb %cl,%al 而在gcc里的内联汇编也有不同,用起来也是挺好用的,看例~ main(){ char tmp; __asm__( "movb %1, %%cl;" "movb %%cl, %%dl;" "shl $7,%%edx;" "movb %%cl,%%al;" "and $2,%%eax;" "shr $1,%%al;" "or %%eax,%%edx;" "movb %%cl,%%al;" "and $4,%%eax;" "shl $2,%%eax;" "or %%eax,%%edx;" "movb %%cl,%%al;" "and $8,%%eax;" "shl $2,%%eax;" "or %%eax,%%edx;" "movb %%cl,%%al;" "and $0x10,%%eax;" "shl $2,%%eax;" "or %%eax, %%edx;" "movb %%cl,%%al;" "and $0x20,%%eax;" "shr $2,%%al;" "or %%eax,%%edx;" "movb %%cl,%%al;" "and $0x40,%%

Continue reading

Posted in WEB相关 | Tagged , | Leave a comment

linux C获取机器MAC及IP的两个函数

[文章作者:陈臻 本文版本:v1.0 最后修改:2006.10.25 转载请注明原文链接:http://www.54chen.com/c/28] 以下两函数分别将mac ip通过memcpy至mac_addr和ip_addr char * get_mac() { int nSocket; struct ifreq struReq; nSocket = socket(PF_INET,SOCK_STREAM,0); memset(&struReq,0,sizeof(struReq)); strncpy(struReq.ifr_name, "eth0", sizeof(struReq.ifr_name)); ioctl(nSocket,SIOCGIFHWADDR,&struReq); close(nSocket); memcpy(mac_addr,(char *)ether_ntoa(struReq.ifr_hwaddr.sa_data),strlen((char *)ether_ntoa(struReq.ifr_hwaddr.sa_data))); return 0; } char * get_ip() { int sock; struct sockaddr_in sin; struct ifreq ifr; sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock == -1) { perror("socket"); return ""; } strncpy(ifr.ifr_name, "eth0", sizeof(ifr.

Continue reading

Posted in WEB相关 | Tagged , , | Leave a comment

APACHE常用设置

KeepAliveTimeout 5 是允许用户保持连接5秒内有效,如果用户在5秒内点击其他页面不需要重新建立联结,这个值设置短不利于降低效率,如果设置长可能导致的同时联结数会跟高,一般建议按照缺省的15 MaxKeepAliveRequests 这个缺省是100 你这个设置太高了,这个使用户连续访问了多少个页面后重新建立联结,你这个值3000,好像太高了点 MinSpareServers 5 MaxSpareServers 10 StartServers 5 如果服务器经常有突发大量请求的话,建议值都稍微太高点 MaxClients 150 这个是服务器最大联结数,如果超过150联结的话系统就有等待情况,如果繁忙的话150是不够的,你可以用命令 ps -ef|grep httpd|wc -l 看看有多少联结,一直接近150的话,建议增大一些 MaxRequestsPerChild 0 这个建立设置10000,apache避免程序有异常,定义一个子进程完成多少个请求以后退出,如果是0就是永远不退出。如果对自己程序比较难把我的话建议设置一个稍大的值而不是0

Continue reading

Posted in php | Tagged , | Leave a comment

linux下系统托盘的实现

[文章作者:陈臻 本文版本:v1.0 最后修改:2006.10.13 转载请注明原文链接:http://www.54chen.com/c/24] 在gnome中国的网页上找到这个内容,他们把它叫做“通知功能图标”。它是一个在未来版本中决定发布的已实现包。 http://www.gnome-cn.org/documents/tutorial/system-tray-icon-application/implement-your-tray 具体实现前需要在下载两个开发补丁源文件,然后包含头文件到你的文件中。 具体代码: void create_tray (tray_demo * tray) { GtkWidget *image; GtkWidget *event_box; GtkTooltips *tooltips; EggTrayIcon *tray_icon; tooltips = gtk_tooltips_new (); tray_icon = egg_tray_icon_new ("Tray icon demo"); event_box = gtk_event_box_new (); gtk_container_add (GTK_CONTAINER (tray_icon), event_box); g_signal_connect (G_OBJECT (event_box), "button-press-event", G_CALLBACK (tray_button_press_event_cb), tray); gtk_tooltips_set_tip (GTK_TOO

Continue reading

Posted in WEB相关 | Tagged , , | Leave a comment

MySQL中各种字段的取值范围

TINYINT -128 - 127   TINYINT UNSIGNED 0 - 255 SMALLINT -32768 - 32767 SMALLINT UNSIGNED 0 - 65535 MEDIUMINT -8388608 - 8388607 MEDIUMINT UNSIGNED 0 - 16777215 INT 或 INTEGER -2147483648 - 2147483647 INT UNSIGNED 或 INTEGER UNSIGNED 0 - 4294967295 BIGINT -9223372036854775808 - 9223372036854775807 BIGINT UNSIGNED 0 - 18446744073709551615 FLOAT -3.402823466E+38 - -1.175494351E-38 0 1.175494351E-38 - 3.402823466E+38 DOUBLE 或 DOUBLE PRECISION 或 REAL -1.7976931348623157E+308 - -2.2250738585072014E-308 0 2.2250738585072014E-308 - 1.7976931348623157E+308 DECIMAL[(M,[D])] 或 NUMERIC(M,D) 由M(整个数字的长度,包括小数点,小数点左边的位数,小数点右边的位数,但不包括负号)和D(小数点右边的位数)来决定,M缺省为10,D缺省为0 DATE 1000-01-01 - 9999-12-31 DATETIME 1000-01

Continue reading

Posted in php | Tagged , | Leave a comment

MySql操作要点整理

列类型 需要的存储量 TINYINT 1 字节 SMALLINT 2 个字节 MEDIUMINT 3 个字节 INT 4 个字节 INTEGER 4 个字节 BIGINT 8 个字节 FLOAT(X) 4 如果 X < = 24 或 8 如果 25 < = X < = 53 FLOAT 4 个字节 DOUBLE 8 个字节 DOUBLE PRECISION 8 个字节 REAL 8 个字节 DECIMAL(M,D) M字节(D+2 , 如果M < D) NUMERIC(M,D) M字节(D+2 , 如果M < D)   日期和时间类型 列类型 需要的存储量 DATE 3 个字节 DATETIME 8 个字节 TIMESTAMP 4 个字节 TIME 3 个字节 YEAR 1 字节 串类型 列类型 需要的存储量 CHAR(M) M字节,1 <= M <= 255 VARCHAR(M) L+1 字节, 在此L <= M和1 <= M <= 255 TINYBLOB, TINYTEXT L+1 字节, 在此L< 2 ^ 8 BLOB, TEXT L+2 字节, 在此L< 2 ^ 16 MEDIUMBLOB, MEDIUMTEXT L+3 字节, 在此L< 2 ^ 24 LONGBLOB, LONGTEXT L+4 字节, 在此L< 2 ^ 32 ENUM('value1','value2',...) 1 或 2 个字节, 取决于枚举值的数目(最大值65535) SET('value1','value

Continue reading

Posted in php | Tagged | 2 Comments
Page 51 of 51« First...1020304748495051
尝试与54chen交流:
Twitter sina微博V GMAIL GitHub

 

54chen,真名:陈臻。
2010年加入小米科技。
关键词:
rose,riak,rabbitmq,zookeeper,thrift,nuclear,
senseidb,hadoop,hive,dynamo,
php extension,nginx module

天下风云出我辈,一入江湖岁月催.
鸿图霸业谈笑中,不胜人生一场醉.
提剑跨骑挥鬼域,白骨如山鸟惊飞.
尘世如潮人如水,只叹江湖几人回.

过去的经历:
人人网分布式研究人员(nuclear系统开发者)
雅虎、淘宝搜索开发工程师
金山词霸开发工程师
曾用代号有:cc0cc、零蛋。

SEARCH

接受捐赠

Comments

  • 54chen: 并没有mybatis的高级,只是简单够用的...
  • 54chen: 参考jade包内,rowmapper包下代码...
  • qiang: sql中查询的字段和实体类中的字段是...
  • mr_change: 你好,for就是类似于mybatis的foreach么...
  • anping: 搞定...
  • anping: 陈老师.rose dao 不能执行存储过程吗?...
  • xiaobao: 我也遇到这个问...
  • 54chen: 没有加@DAO注解...
  • 54chen: 移步github看看qieqie最新的版本吧。事...
  • 54chen: MysqlParse...