随笔分类 - 经验积累
我的软件开发经验积累
摘要:多人聊天(群组,讨论组,聊天室,以下统称: “群组” )需要生成一个拼接头像,需要把最先加入群组的几个人(最多4个人,以下简称:头部用户,A、B、C、D)的头像拼凑成在一起。
群组创建后,A、B、C、D其中任何一个用户修改了自己的头像,需要 "异步" 更新群组头像。
本文使用.net core实现了N张图片拼接算法。
阅读全文
摘要:本文探讨了两种比较简单的随机算法:无限次随机算法与固定奖项随机算法,并用C#分别实现了这两种算法,给出了算法1和算法2的测试结果。结果表明:随着抽奖次数的增加,算法1的抽奖结果越来越接近设定的中奖概率分布;算法2与设定一致。
阅读全文
摘要:为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译
阅读全文
摘要:目前微信公众平台正如火如荼的进行中,微信虽然在海外市场不敌WhatsApp,但是已经俘获了国内绝大部分用户的心。作为国内最大的,超级"app",微信已算是成功问鼎了。公众帐号百花齐放,各自SDK层出不穷,但是单单.net平台/C#的SDK也就那么几个值得一提:Senparc.Weixin.MP(以下简称Senparc) 和WeixinSDK.net(以下简称WeixinSDK)。ps:为什么官方没有完整的.net/C#版本?谁知道可以告诉我下。
阅读全文
摘要:微信消息体签名及加密功能已上线,明文传输确实存在安全风险,鉴于微信的用户范围使用之广泛,必定会成为众矢之的。所以大家还是尽快接入安全模式为好。仔细阅读官方接入指南,发现这次安全升级只是涉及到用户在微信对话窗口中与公众好消息交互,所以此次升级还是比较简单的。下面为大家一一道来。
阅读全文
摘要:今日,腾讯在推出windows桌面版的微信后,又发布了一个重量级产品:QQ浏览器微信版。我们在PC端用微信又多了一种方式,而且比windows桌面版本更加友好,更加方便。我相信:对于我们绝大多数办公室白领来说,浏览器是接触最多的软件了。下班后微信有是大多数人用的最多的app。这句话不同意的请留言反驳我。而QQ浏览器微信版正好把这两种需求完美的结合在一起。我看好微信,看好腾讯。腾讯不愧是中国最有价值的互联网公司(前几天在博客园新闻频道有报道过)。
阅读全文
摘要:微信此次开放JS接口,开放了一大批api权限,即使在未认证的订阅号也可以使用图像接口,音频接口,智能接口,地理位置,界面操作,微信扫一扫等功能。要知道:以前订阅号只能接受和被动回复用户消息而已。微信官方没有给出.net版本,有java,node,php和python,唯独没有.net版本,这是怎么了?本文就教你实现.net版本的微信JS-SDK权限签名生成算法。
阅读全文
摘要:Douglas Peucker算法的C#实现
阅读全文
摘要:一、为什么要生成说明文档我们大家都知道,自己写的API要供他人调用,就需要用文字的方式将调用方法和注意事项等写成一个文档以更好的展示我们设计时的想法和思路,便于调用者更加高效的使用我们的API。当然,您可以不借助任何工具,自己手工写文档,然后做成chm或者html的形式交给客户,就是效率有点低,并且...
阅读全文
摘要:当windows系统下使用System.IO命名空间下的方法,目录长度超过260个字符时,.net framework会抛出LongPathException。查阅相关资料,发现是微软为了安全和系统兼容性做出的限制。
原话是这么说的:The exception that is thrown when a path or file name is longer than the system-defined maximum length.
阅读全文
该文被密码保护。
摘要:用FormsAuthenticationTicket.Version存储用户角色ID。
一开始还为自己的机智和精巧的设计洋洋得意,而且在安卓手机上运行完全没有问题。但是在IOS上,不管我Version设置为什么值,它的值始终都是2.
很奇怪。根据msdn的解释:如果 FormsAuthenticationTicket 是使用不提供 version 参数的构造函数创建的,则 Version 属性返回 2;否则,Version 属性返回提供给FormsAuthenticationTicket 构造函数的值。
阅读全文
摘要:我们都知道ASP.net mvc权限控制都是实现AuthorizeAttribute类的OnAuthorization方法。这种方式是比较粗粒度的解决方案,由于是已经将定义好(约定好的)权限hard code带对应的Action上,所以无法实现用户自定义权限控制。基于角色的权限控制系统RBAC(Role Based Access Control)是目前最流行,也是最通用的权限控制系统。对于ASP.NET MVC来说,这套系统很容易实现:Controller下的每一个Action可以看作是一个权限,角色就相当于多个权限的组合。本文就是来探讨这个事情的。
阅读全文
摘要:利用.net4.0的dynamic特性制造的超级简单的微信SDK
阅读全文
摘要:特别不喜欢麻烦的一个人,最近碰到了微信开发。下载下来了一些其他人写的微信开发“框架”,但是被恶心到了,实现的太臃肿啦。
最不喜欢的就是把微信返回的xml消息在组装成实体类,所以会比较臃肿,现在都提倡轻量级,所以有什么办法可以避免大量实体类的存在呢。
当然,还有包装的比较繁杂,看完官方API后,再看"框架",让人感觉一头雾水,不够清晰、明了。
阅读全文
摘要:Postgre 的Copy以及9.1版本后的unlogged table 特性可以极大的提升数据插入效率,一个12个字段的b-tree集群索引,15个字段的表,插入速度优化到5000行/秒,查询在500ms。
阅读全文
摘要:工作中经常涉及任务调度,一直都是采用while(true) => if hitted DO => Thread.Sleep(interval)的模式。但是最近实在是感觉这种实现模式很挫。并且没有考虑到性能问题,需要撞击n次才能命中一次,使用效率不足5%(一百次while循环命中不到5次),但是单方面加大线程睡眠时间又无法保证高准确性和高精度。那有么有其它好的思路:即可以保持高准确性、高精度,又不浪费资源呢?
二、我的思路
上述的短板在于:无目的的线程Sleep,如果我们可以每次恰到好处的Sleep,即线程被唤醒后刚好赶上下一次的任务到来,命中率就是100%了嘛。所以可以这样做:进入While后先安装Scheduler计算出下次的运行时间距离现在还有多久(Interval),然后直接Sleep(Interval),等待线程唤醒后就立即执行下一个既定Task就可以了。那这样做唯一的难点就在于你的Scheduler是否可计算、是否可以计算出下一次的运行时间点。
还好,我碰到的逻辑都还是满足这一点需求的:
(1)每隔一段时间执行一次的计划任务;
(
阅读全文
摘要:Python中两种基本的数据结构是序列和映射,序列包含:可变的列表和不可变的元组;而当序列不够用时就出现了映射:字典。列表中的元素是可以变化的,元组里面的元素一旦初始化后就不可更改。列表和元组只是一类元数据的集合体,还不能满足通过名字引用值的数据,故字典就充当了这个功能角色。
阅读全文
摘要:传统web请求,是显式的向服务器发送http Request,拿到Response后显示在浏览器页面上。这种被动的交互方式不能满足对信息即时性要求高的应用,譬如聊天室、股票交易行情、在线游戏等。Ajax轮询虽然可以解决这个问题,但是会带来增加服务器负担已经带宽浪费,并且这种实现方式不够优雅。而Comet技术就是为此而生的。
本文只探讨基于浏览器的web端服务器推技术。服务器推技术在现实应用中有一些解决方案,主要分两类:一类是需要浏览器额外安装插件,基于套接口传送信息或者是基于RMI、CORBA进行远程调用,另一类则无需浏览器安装任何插件,就是本文着重讲的HTTP长连接技术:Coment。Alex Russell(Dojo Toolkit 的项目 Lead)称这种基于 HTTP 长连接、无须在浏览器端安装插件的“服务器推”技术为“Comet”。
阅读全文
摘要:一、前言:
最近北京出租车蓄意涨价,各地出租车行业估计也在跃跃欲试了吧。
初到一个城市,由于中国同音字很多,经常会遇到一些地方叫不上名字,或者名字叫错的情况。你上车告诉师傅地方,说不准人家还会笑话你,宰你没商量。
阅读全文

浙公网安备 33010602011771号