摘要: 最近群里聊起秒杀和限流,我自己没有做过类似应用,但是工作中遇到过更大的数据和并发。 于是提出了一个简单的模型: var count = rds.inc(key); if(count > 1000) throw "已抢光!" 借助Redis单线程模型,它的inc是安全的,确保每次加一,然后返回加一后的 阅读全文
posted @ 2018-01-17 12:33 大石头 阅读(11729) 评论(36) 推荐(32) 编辑
摘要: 大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作。为了更好的为公司提供运营决策,各种抖机灵甚至异想天开的想法都会紧跟着接踵而来!业务多变,决定了必须每天修改系统,重新跑数据,这就要求极高的海量数据读取和存储速度! 公司每天增加几亿行的业务日志数据,我们需要从中分析出各种维度的业务画像。经过 阅读全文
posted @ 2018-01-16 12:32 大石头 阅读(10533) 评论(44) 推荐(56) 编辑
摘要: 魔方是一套集成权限管理的MVC管理后台,最具特色功能是模版覆盖机制,是XCode实体类的最佳搭档! 借助魔方v2.0的Ajax机制,普通C#工程师可以无需编写js脚本即可完成各种高级操作! 阅读全文
posted @ 2017-11-27 10:04 大石头 阅读(2533) 评论(7) 推荐(18) 编辑
摘要: win2016多用户登录: 添加角色“远程桌面服务”,子角色“远程桌面会话主机”和“远程桌面授权”,重启 远程桌面授权,激活服务器,企业协议,协议号6565792,授权模式“每用户” 本地策略管理器gpedit.msc,管理模版,Windows组件,远程桌面服务,远程桌面会话主机,授权,许可证服务器 阅读全文
posted @ 2017-10-26 14:17 大石头 阅读(11978) 评论(2) 推荐(0) 编辑
摘要: Cortex-Mx启动,备忘,以免将来忘记。中断向量表不用说,从重置中断开始吧 这里一共就执行了两个函数,SystemInit和__main。 我们一般在SystemInit里面配置系统时钟,这里跳过。__main是我们今天的重点。 分散加载这里将会初始化我们的全局静态变量 可能汇编看起来不是很直观 阅读全文
posted @ 2017-09-04 08:29 大石头 阅读(1526) 评论(0) 推荐(4) 编辑
摘要: SmartOS是一个完全由新生命团队设计的嵌入式操作系统,主要应用于智能家居、物联网、工业自动化控制等领域。ARM Cortex-M系列微处理器几乎全都做成单核心,对于业务逻辑较复杂的物联网就显得难以使用,因此SmartOS设计了两个多任务调度系统:1,多线程调度,重量级,逼近PC操作系统多线程用法 阅读全文
posted @ 2017-09-03 13:27 大石头 阅读(2392) 评论(0) 推荐(2) 编辑
摘要: 设备身份验证有以下目标:1,别人的设备不能接入我们的云平台2,我们的设备,不能接入别人的云平台3,考虑到设备要批量生产,云平台先生成设备编码再写入每个设备的方法,非常不现实!那么,标准的设备身份验证应该是:1,设备上电联网后,需要一个激活过程2,设备向云平台申请激活,包括 厂商、生产批次、生产密码、 阅读全文
posted @ 2017-09-03 13:20 大石头 阅读(1002) 评论(0) 推荐(1) 编辑
摘要: 以太网接入型设备,一般分为网线或WiFi两种。不管是WiFi还是网线,可以通过局域网抓包、笔记本WiFi桥接抓包等等手段。最著名的抓包软件 Wireshark如何抓取硬件设备的网络数据包,考量的是网络知识基本功,需要大家自行度娘!基本准备工作:1,Wireshark监听udp的53端口,一部分硬件设 阅读全文
posted @ 2017-09-02 00:02 大石头 阅读(3539) 评论(0) 推荐(4) 编辑
摘要: 返回值优化,是一种属于编译器的技术,它通过转换源代码和对象的创建来加快源代码的执行速度。RVO = return value optimization。测试平台:STM32F103VG + Keil 5.15背景:我们有个MacAddress::ToArray 因为封装需要,打算返回字节数组类Byt 阅读全文
posted @ 2017-09-01 22:59 大石头 阅读(2641) 评论(0) 推荐(1) 编辑
摘要: 自2003年开始,断断续续用了12年C++,直到这两年做物联网嵌入式开发,感觉对C++的掌握仅有10%左右。习惯了C#开发,C++倒显得难以下手!今天就一个函数返回问题跟辉月兄弟讨论一番,大有所获,足以解决我们目前80%的问题,感觉对C++的掌握上升到了20%。背景,现有字节数组ByteArray和 阅读全文
posted @ 2017-09-01 22:56 大石头 阅读(1818) 评论(15) 推荐(15) 编辑
摘要: 因为需要自动适配芯片进行系统配置,所以我们有必要通过读取一些系统寄存器来获取必要信息。我们的代码需要兼容STM32F1/GD32F1/STM32F0/STM32F4代码如下: 各常见芯片信息如下:STM32F030C8T6 GD32F130C8T6 STM32F051C8T6 GD32F150C8T 阅读全文
posted @ 2017-09-01 14:05 大石头 阅读(2720) 评论(0) 推荐(0) 编辑
摘要: 无数次遭受堆栈溢出折磨,随着系统变得复杂,故障点越来越难以查找!主要溢出情况如下:1,一般RAM最后两块空间是堆Heap和栈Stack,堆从下往上用,栈从上往下用,任意一个用完,都会进入对方的空间2,如果栈用完,进入堆的空间,这个时候系统是不会有任何异常的,也就是说,栈底没有什么意义。除非堆和栈指针 阅读全文
posted @ 2017-09-01 13:55 大石头 阅读(1299) 评论(0) 推荐(1) 编辑
摘要: 先来看看我们SmartIRQ的具体实现 在构造的时候备份,然后根据参数决定打开还是关闭中断。在系统内核时钟里面,关键操作需要关闭中断,最后打开,以免其它中断影响关键操作的原子事务性。于是我们有: 其中irq在离开作用域时被释放,自动调用SmartIRQ的析构函数,还原了中断状态因为调用极其频繁,最高 阅读全文
posted @ 2017-09-01 13:12 大石头 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 在测试MF固件时,发生一个非常诡异的异常,代码如下: 指定第二行代码时,会跳到异常处理程序,发生了6号异常(用法异常Usage Fault)我对ARM还是非常陌生,不知道怎么可能发生这个问题。在今天之前,这行代码执行了无数次也未曾出错,最近也没有修改该函数或者相关函数的代码,昨天倒是大量修改了其它代 阅读全文
posted @ 2017-09-01 13:06 大石头 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 在2015年7月16日,XCode新增了实体处理模块IEntityModule,用于拦截实体对象添删改操作。 该接口参考IHttpModule设计理念,横切在实体对象的关键生命周期之中,以达到多实体类通用处理的效果。比如为多个实体类增加假删除等特色功能。 阅读全文
posted @ 2017-08-30 23:53 大石头 阅读(1001) 评论(2) 推荐(6) 编辑
摘要: 网络客户端ISocketClient和网络会话ISocketSession都继承了ISocketRemoteISocketRemote表示远程通信,核心就是收发数据。下面是ISocketRemote接口的主要实现 一、同步收发一般小型网络应用,或者个人学习程序,都会使用同步收发。Send(xxx); 阅读全文
posted @ 2017-08-30 22:51 大石头 阅读(676) 评论(0) 推荐(7) 编辑
摘要: 新生命团队基础框架X组件,包括网络、数据库、安全、多线程、反射、序列化、模版引擎、服务代理、远程过程调用等模块,包括Mvc后台魔方、超级码神工具、消息队列等子系统,支持Mono/Android/iOS/NetStandard。 新生命开发团队 网站:http://www.NewLifeX.comQQ 阅读全文
posted @ 2017-08-30 10:23 大石头 阅读(1198) 评论(5) 推荐(9) 编辑
摘要: 为了验证SQLite的性能巅峰,我们来做一个大数据测试。 模拟每天4亿票销售订单,分表分库,每天一个数据库文件,有订单号、部门节点、时间等。 租用阿里云最低配置ECS,单核1G内存,1M带宽,每年300块,每天九毛钱 阅读全文
posted @ 2017-06-02 11:35 大石头 阅读(28295) 评论(73) 推荐(114) 编辑
摘要: SQLite什么都好,就怕“database is locked”这些年来想尽办法去规避它。测试代码: static void Test2() { XCode.Setting.Current.TransactionDebug = true; XTrace.WriteLine(Role.Meta.Co 阅读全文
posted @ 2017-01-27 03:07 大石头 阅读(1466) 评论(0) 推荐(2) 编辑
摘要: 魔方 是一个基于 ASP.NET MVC 的 用户权限管理平台,可作为各种信息管理系统的基础框架。 演示:http://cube.newlifex.com 源码 演示账号:admin/admin 源码: https://git.newlifex.com/NewLife/X/Tree/master/N 阅读全文
posted @ 2017-01-23 17:13 大石头 阅读(2616) 评论(8) 推荐(9) 编辑
摘要: XCode天生就有分表分库功能,设计于2005年!历时9年,这是分表分库功能第一次针对性正式更新。在XCode里面,分表分库非常简单,在操作数据(查询/更新)前修改Meta.ConnName/Meta.TableName,指向别的连接字符串和表名,就实现了分表分库功能!实际上,XCode实体层构建数... 阅读全文
posted @ 2014-06-16 05:01 大石头 阅读(6202) 评论(17) 推荐(37) 编辑
摘要: 2008年4月到上海,约好了待遇五千多的一家公司,地铁8号线西藏北路附近。面试的时候才得知,试用期无工资, 每天50块钱饭贴,转正后2k。公司不大,主要接别的公司分出来的项目。因为是好友介绍的,我觉得可能是对方没有真正的了解我,留下 HttpProxy/XProxy源码后我就离开了。那时心里想,2k 阅读全文
posted @ 2014-02-21 08:55 大石头 阅读(14133) 评论(266) 推荐(185) 编辑
摘要: 快要毕业了,最后一年基本待在实验室做毕业设计。导师严老师认识的一个项目刚好缺一个做网站的, 就让我帮一下忙。需要去跟客户沟通获取需求,我觉得这是一个很好的学习的机会,没想太多,就做了!几个月后,老师把我叫进机房,项目组老师也在,交给我厚 厚一叠钱。“这是两千块,做网站辛苦你了,你点一下!”。我没有点 阅读全文
posted @ 2014-02-19 12:05 大石头 阅读(7631) 评论(51) 推荐(17) 编辑
摘要: 跟朋友聊天,说到早些年怎么赚钱。 我第一个想起的是2003年,在广西大学空谷社区技术部,被派去帮校友会维护校友会网站(ASP+SQL2000),搞了几个月。某一天技术部部长拿给我50块RMB,我甭提多高兴!这可是我这辈子第一次赚到钱呀!!!于是请好兄弟双喜和曹灿到超市吃了一根冰棍。 虽然在1996年 阅读全文
posted @ 2014-02-18 17:37 大石头 阅读(6968) 评论(29) 推荐(20) 编辑
摘要: 新生命开发团队大石头讲解网络异步编程(C#)内容:网络编程基础、IOCP、APM、SAEA时长:2~3小时价格:20元,20人及以上成团,http://item.taobao.com/item.htm?id=20159314203联系:QQ群1600800YY :频道41600800至少20人份拍下(无上限),再商量安排具体讲课时间,如若一个月内凑不够20人份,将退还全部报名费!大家需要准备好VisualStudio2010/2012/2013,边讲边做练习,当场解决问题!初步定在YY频道讲课,未报名者止入!从2004年开始,我们新生命开发团队就有免费网络讲课的传统,感兴趣的人很多,真正听的不 阅读全文
posted @ 2013-09-14 14:54 大石头 阅读(1659) 评论(0) 推荐(1) 编辑
摘要: 软件开发本身是一个特殊的行业,它让我们可以在工作之余,发挥自己的优势,多获得一些收入!根据我自己多年来的一点经验,说说如何找到并完成兼职项目,没有提到的地方,还请大家补充:1,选择项目要慎重我的原则是不熟悉的人的项目不做!刚认识不久就有项目的也不做,如果是自己很熟悉的朋友,他的也是很熟悉的朋友,那可 阅读全文
posted @ 2012-11-09 12:23 大石头 阅读(12404) 评论(118) 推荐(45) 编辑
摘要: 如果喜欢.Net Micro Framework,对C#玩单片机,对物联网和工农业自动化感兴趣,MF将是一个不错的选择! MF是微软开源的项目,本系列移植教程将让你具有独立的移植能力,配合市场上40~300RMB的各种单片机学习板,可以让你走得更远! 阅读全文
posted @ 2012-11-08 22:03 大石头 阅读(7422) 评论(37) 推荐(28) 编辑
摘要: 一些系统,需要能够发送短信,量很小,平均每日10条。 运营商平台太贵,白名单很严格,小额只能发省内; 各短信平台有各种限制,大事件前后会关闭; 飞信以前可以用WAP发,但是现在多了验证码,搞不定了; 短信猫买来还得写控制程序,价钱和时间上…… 阅读全文
posted @ 2012-11-02 09:32 大石头 阅读(5850) 评论(37) 推荐(9) 编辑
摘要: 钓鱼岛是中国的!如果你不承认,请关闭本页!移植准备.Net Micro Framework移植必须安装PK最新版本,可以从官网(http://netmf.codeplex.com/)下载,建议安装到C:\PK;我们采用MDK编译器,所以也必须安装Keil MDK,建议安装到C:\Keil\ARM;最好也安装VC++ 2010 Sp1,后面绕开的方法未验证。建议安装功能强大的文本编辑软件,比如Notepad++。建议购买固态硬盘,编译速度将可以提升五到十倍,并且后面还有大量的搜索字符串工作,在一万多个零碎文本文件里面找一个变量名或方法名编译脚本setenv_base.cmd增加MDK编译器,不带 阅读全文
posted @ 2012-09-12 10:28 大石头 阅读(4215) 评论(48) 推荐(26) 编辑
摘要: 通过《C#点灯神话》,我们了解到单片机最基础的输入输出功能,也就是所谓的GPIO。 这一次,我们来点更多的“灯”——数码管,并且还是四位数码管。 阅读全文
posted @ 2012-09-08 15:45 大石头 阅读(3574) 评论(18) 推荐(16) 编辑
摘要: 如同学习每一门编程语言的Hello World!一样,点灯自然成了单片机入门的HelloWorld。因为单片机上的HelloWorld实在是太难了! 在电子上只有电压电流之类的概念,而对于单片机来说,我们可以认为0代表低电压(低电平、接地),1代表高电压(高电平)。在我们学习的STM32单片机上,高电平其实就是3.3伏!今天我们要点亮的小灯,就是发光二极管,让3.3V和0V分别接在发光二极管的正... 阅读全文
posted @ 2012-09-06 12:15 大石头 阅读(6066) 评论(34) 推荐(17) 编辑
摘要: 因为探索者一号供不应求,远超预期,并且我们自己设计制造的成本太高,所以没有再次生产。而是选择较高性价比的第三方STM32开发板作为MF学习板,是为探索者二号。因此,二号并不是一号的改进版,它们压根就不同,甚至MCU(处理器)都不同。先来看看探索者二号的全貌:二号相对于一号,有几个优点是非常吸引人的:直接配有匹配的TFT触屏,避免了一号那样出现接口不兼容的问题;带有4个高亮蓝色LED灯,4个功能按键,方便测试基础功能;引出的排针针脚,都标有名字,很容易查找。同样,也有一些缺点:MCU是STM32F103VET6,针脚100P,比一号ZET6的144P少,不过对于开发学习也足够用了,Flash和. 阅读全文
posted @ 2012-09-03 13:14 大石头 阅读(2893) 评论(9) 推荐(15) 编辑
摘要: MF全称Microsoft® .NET Micro Framework,是微软推出的一个微型.Net框架,微型到什么程度呢?它自身就可以是一个操作系统OS,它编译出来的程序,就可以直接跑在硬件上,当然,也可以在别的嵌入式系统(如UCOS)上用它,MCU才不管什么操作系统呢,找到第一条指令就开始执行,到哪算哪。有了它,我们就可以直接用VisualStudio C#写嵌入式程序。不过也有几点不足:性能上据说中等,跑图形界面时需要较大内存(MCU内SRAM比较小,一般64K~512K,可以外扩4M),只能用.Net的很少的一部分类库MF的核心原理就是通过特殊的C#编译器把你写的代码编译成为 阅读全文
posted @ 2012-09-02 15:37 大石头 阅读(1194) 评论(4) 推荐(0) 编辑
摘要: 这是STM通用的刷固件方法,不仅仅适用于.Net Micro Framework,支持我们当前所有板子,包括阿波罗、探索者和雅典娜三个系列。单片机可以看做是CPU、内存和硬盘的集合体,其中的Flash就是硬盘,RAM就是内存。我们所谓的刷机(刷固件)就是把系统(固件)安装(刷)到单片机上。固件一般是bin文件,也有hex。传统单片机程序,系统程序和用户程序都混在一个bin里面,而我们的MF,一般刷TinyCLR.bin,然后用户程序通过另外的软件刷进去(比如MFDeploy和vs2010)。一般的单片机都有专用的固件烧写设备,比如51的编码器,TI和STM的JLink和ULink等。探索者一号 阅读全文
posted @ 2012-09-02 09:04 大石头 阅读(3300) 评论(3) 推荐(0) 编辑
摘要: X组件只是一个工具,一个约束,集成了2002年新生命团队建立以来数千人的智慧,所以我们谈不上创新,我们充其量只是管理者,收集消化大家的技术,整理起来给更多的人使用。我们希望建立一套大部分人比较容易接受的标准,让大家在这个标准之内开发组件开发项目,让大家的项目具有一致的风格,让大家都能够很容易的相互合 阅读全文
posted @ 2012-09-02 08:59 大石头 阅读(3199) 评论(7) 推荐(11) 编辑
摘要: 因为采购液晶屏的时候没有告诉厂家要母头,结果厂家默认发了公头的,然后开发板上的接头也是公头,从而无法连接。 心急之下,到电子城做了一批排线,两头插座,中间排线,把开发板和液晶屏连起来,然后我没有测试。 周末的时候测试发现,液晶屏没有点亮,后面的IC很烫,我就怀疑烧了,觉得自己可能接错线。 今天晚上用万用表测试,才知道,排线根本就是错的,然后自己从新做了两次错误,都以失败告终。 多次思考后... 阅读全文
posted @ 2012-08-27 22:31 大石头 阅读(676) 评论(0) 推荐(0) 编辑
摘要: MF让我们这些C#程序员能够把手伸到嵌入式行业,大大增强我们在各种项目中的竞争能力。无奈国内研究MF的人少之又少,为了加速MF技术的研究,我们团队采用少量补贴的方式,委托厂家生产了一批MF开发板,售给团队内的开发人员。 阅读全文
posted @ 2012-08-27 16:44 大石头 阅读(1440) 评论(4) 推荐(7) 编辑
摘要: 自从发布了一篇博客Oracle免客户端For .Net(增加分析Devart和DataDirect)后,非常非常多的同学前来问各种Oracle客户端运行时安装配置的问题,严重影响了我们团队的正常工... 阅读全文
posted @ 2012-05-28 10:58 大石头 阅读(5616) 评论(18) 推荐(18) 编辑
摘要: 用法: ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 DAL.AddConnStr("xxgk", "Data Source=192.168.1.21;Initial Catalog=信息公开;user id=sa;password=Pass@word", null, "mssql"); var dal = DAL.Create... 阅读全文
posted @ 2012-05-10 10:19 大石头 阅读(2282) 评论(4) 推荐(7) 编辑
摘要: 与其它ORM框架相比,XCode拥有最强的多数据库正向反向工程,暂时还没有发现能在这点上超于XCode的,哈哈!但是,XCode的多数据库反向工程,也是有代价的,不同数据库的数据类型相差十万八千里,我们不可能完全支持。所以,我们只做了常见的一些数据类型支持,但是这些已经足以满足99%的要求。最佳数据类型如下:1,整型。Int32是标准配置,这个必须有的。在Oracle,整型就是小数为0的Nume... 阅读全文
posted @ 2012-05-10 10:17 大石头 阅读(3289) 评论(5) 推荐(6) 编辑