[转载]QQ邮件群发 - xiaodao - 博客园

mikel阅读(997)

[转载]QQ邮件群发 – xiaodao – 博客园.

在项目也完成的差不多了,就把程序重新修正了发布。
本程序由 Microsoft Visual Studio 2010 编写,在测试机上安装了
.NET Framework 3.5(SP1 完整安装包) 正常通过测试。
此次升级使用 SQLite、TemplateEngine 开源库,如需要源码请到其官方网站下载。
本程序可以免费在您的计算机中复制分发副本运行,不提供源码。

由于开发时间很短,不保证能正常发送,但其代码是前一版本升级过来的,应没有什么问题,如果有问题请联系我:hulaka@vip.qq.com
********操作说明********

导入的数据如果不符合格式可以先用替换工具(记事本、Word)将其设置为正确格式。

SendMail.exe 程序的 UI 部分。
Bin.exe 程序的运行部分。
Shell.vbs 实际运行中没有任何作用,作为 Shell 代码留作备用查看。
SendMail.db 程序数据库。
Mail.htm 要发送的邮件正文,注意必须将内容编辑到“<body>内容</body>”之间。
fup.asp Shell 服务器脚本,可以使用小刀编写的 FTPBatch(已含在程序包中,下载源码) 批量上传。
********更新日志********

2010-8-15 V1.1:

1、半 UI 的方式,解决了操作不方面的问题;
2、使用 SQLite 嵌入式数据库,程序可以分发多个副本运行;
3、SQL 执行自带了一些简易的命令语句;
4、支持报表查看,实时状况一目了然(使用了 TemplateEngine 解析);

 

下载程序包 >>

Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse l

mikel阅读(746)

更新了sdk adt,就出现这问题,官方又重新下载了,adt结果有错误。我崩溃了。求解惑!!!

我就这样反复找问题,还是一筹莫展。

解决方法:

你可能是直接import的代码,代码本身会在你的项目下建立一个依赖包  Android Dependencies,在eclipse中右键这个工程文件夹,
在Build Path选项中选择  remove it from build path。。。然后就没问题了。。希望可以帮助到你。

[转载]用代码截图去理解ASP.NET MVC原理 - 黑树 - 博客园

mikel阅读(975)

[转载]用代码截图去理解MVC原理 – 黑树 – 博客园.

【概述】
看了蒋金楠先生的《ASP.NET Mvc框架揭密》,这本书详细地讲解了mvc的原理,很深奥也很复杂,看了几遍才将就明白了一点。他在第一章用了一个他自己写的mvc框架作为例子,代码 看着有点多,所以为了帮助理解,我想用截图的方式一步一步地描述mvc的流程,本人能力有限,写的不好,还望大家包涵。如果蒋老师看到这篇文章,也希望能 对我理解错误的地方进行指正。
 
一、先在web.config中注册自定义的HttpModule
二、输入网址
三、添加默认的路由规则
四、注册PostResolveRequestCache事件
五、解析RouteData
六、解析请求的controller和action
七、封装RequestContext
八、获取MvcHandler
 
九、指定MvcHandler处理http请求
 
十、通过反射建立Controller对象
 
十一、通过反射建立Controller对象
 
十二、用生成的controller对象执行请求
 
十三、通过反射建立Action
 
十四、通过反射建立Action

 
十五、由自定义的RawContentResult显示结果
十六、结果显示
 
【总结】
上面所用的代码是从蒋先生的博客上下载的源码,看过书后用断点一步步跟了几遍,稍微理解了点这个流程。用蒋先生的话做个总结:实际上整个ASP.NET MVC框架就是通过自定义的HttpMoudle(UrlRoutingModule)和HttpHandler(MvcHandler)实现的。
希望此文能帮到更多在学习mvc的朋友,谢谢支持。
 

[转载]程序员生存定律--细论影响人生成绩的四个要素(1) - 理想流 - 博客园

mikel阅读(908)

[转载]程序员生存定律–细论影响人生成绩的四个要素(1) – 理想流 – 博客园.

程序员生存定律这系列的目录在这里:程序员生存定律–目录

喜欢从头瞄的,可以移步。

——————————————————————————

定律要素之一:自身价值

在金庸先生构建的武侠世界里,最犀利的杀伐武功应该是《独孤九剑》,但学会了独孤九剑却失了内功的令狐冲一样会被一堆无赖按到地上揍个鼻青脸肿。待到学会了吸星大法,内力大进,那就再没这回事了。

根据打铁还要自身硬的道理,修炼确实应该先从内功开始,但不是说招式就不必要了,这很辨证。至于究竟那个更重要这样的问题不在具体的时空背景下是没有答案的。

从最终表现来看,一个人的价值(或者说内功)可以体现在几乎无限多的地方,如:编程语言、分析设计、沟通、管理、估算、流程改善等等。但如果为各种技能稍做一点分类后就会发现,人创造价值的基本途径只有两个:一个是完全依赖于自身的技能,另一个则是假于他人之手。

后者也许不太容易理解,这里举一个简单的例子:假设张三和李四的技术能力都非常的优秀,但两者性格不合,一旦在一起工作就非常容易各自固守己见,寸 步不让,每天争吵不断。这个时候王二出现了,王二的技术能力并不优秀,但比较擅长协调各个人的意见,有王二在,张三和李四就可以配合的比较好。在这种情形 下,王二创造了价值,虽然很大程度上这种创造依赖于A和B。

具体来讲,编码、设计、测试、估算、需求分析等更类似于直接通过自身的技能创造价值,而管理、流程改善等则类似于后者。专注于设计、编码、测试等实现工作的人在现实中往往被定义为程序员,而专注于管理、流程改善等方面的人在现实里则往往被定义为管理者。

从可创造价值大小的角度看,一般情形下两者似乎都没有一种准确限度:伟大的政治家和伟大的科学家可以同样的伟大。但从现实来看,至少是在国内,很多时候人们更倾向于认为管理类职位拥有更高的价值。现实中很多公司中确实如此,但这并不总是对的。

似乎可以在某一条线上把公司安放在不同的位置上,越过某条界限之后,直接做事的人所创生的价值才可能超过管理人员。这反过来要求岗位的技术附加值要 比较高。想象下在制造类企业中,从收入的角度看,生产线上的工人的收入总是会偏低。同理,在软件公司中,越是技术含量低的开发工作,这点体现的越为明显。 而一旦到了顶级软件公司中故事就可能会不一样了。

 

在《微软的秘密》这本书中有这样一段描述:

我们中有些人对开发人员怀有极度的不满,那简直就是嫉妒。达瑞尔•希文斯是 Windows NT的主要开发人员之一,他有9辆保时捷,我当然也希望能够拥有9辆保时捷。但我怨恨达瑞尔么?当然不。他绝对受之无愧,他真的棒极了。 如果用我的支票来给他开工资,我也愿意。不过从长远来看,过一两年你肯定就能得到应得的报酬。如果由于某些原因,我们引入了达瑞尔,并付给他足够买9辆保 时捷的薪水,而他一旦干得不够好,就不会在这里工作很久… …但这些开发人员都是精心挑选出来的人才……唯一的不利之处在于,总有一部分 人感到开发人员才是“主角”,但这正是这一行业的本质。

持上述看法的人是Windows NT的高级产品经理理查德•巴斯,从描述来看,这个管理者的收入是要低于被管理的技术人员的。

促成这一结果的三个关键词是:微软、Windows NT、主要开发人员。微软抓住天时雄霸PC的操作系统市场,而在操作系统中 Windows NT正是核心,在前两者基础上达瑞尔•希文斯又是主要的开发人员。为使技术人员的收入超过管理人员的,这三个因素恐怕是缺一不可。这在以 销售为核心的公司里很难复制,但在以产品为核心的公司里却始终存在着可能性。

单以方向自身而言,很难单纯讲那条是金光大道,而那条是华容道。关键点首先在于要避免选择自身内部蕴含矛盾,比如你想做技术却选了不以技术为核心支撑的公司,选了管理,却在纯研发环境里。其次在于无论那条路上都要努力走到专业和高端。

而不管技术还是管理,影响增值整个过程的因素都比较多:知识体系上的认知、方向的选择、博与专的平衡、知识的可流动性等都要分别进行考察。对这些点的考察将在后面逐渐展开。

 

定律要素之二:自身价值上的表达力

 

很多人咋一看这个标题,也许会有疑问:假如说是一个很牛很牛的大侠,那还需要表达力么?

实际情形是,如果大侠总是猫在山洞里隐居,那么有没有表达力其实一点都不关键,但现在关键的是江湖需要表达力,所以大侠一入江湖,就变的需要表达力了。

一说到表达力,很多人就会想到沟通和说话,但其实说话远不是表达力的核心。敏于事讷于言的人很多,难道他们就没有表达力了么?显然不是的。一个人的过往、行止、习惯、性格等都是表达力的一部分。

我们先来看一个简单的例子。

2012的CSDN上有一篇翻译的文章,叫“编程的技能和做员工的技能–那个更重要?”这篇文章里描述了两个极端的例子:

 

Rodrigo毕业于麻省理工,他在业余时间开发编译器。他是Haskell语言的 核心代码捐助者,他开发了很多非常有名的Python程序库。他写出的代码都是非常健壮的代码,可读性好,能够优雅的处理各种程序上的临界计算场景。然 而,他通常是拖延几天才回复邮件,你很少见他会接听电话,他看起来并不真正理解按时完成任务的重要性,他按自己的方式做事,你不可能弄清楚他究竟是怎么想 的,只感觉他脑子里都是一些漫无边际的想法。

Gabriella并不是一个非常优秀的程序员,她写的程序看起来显然很业余。15 到20行就能完成的程序她写了30行。她的程序里有bug,这让QA部门在上面花费了不少时间,她没有真正理解写出的代码应该具有好的性能的道理——“能 用就行啦!”。然而,她很热情——她收到邮件几分钟内必给予回复,她从不漏接一个电话,她善于沟通,她能把复杂的技术问题清楚的讲给客户听,她从没有逾期 完不成任务,她不断的寻求反馈来改进自己的工作,她是一个很随和的人,同事喜欢跟她说话。

 

这两个极端的例子很有意思,但如果我们真的二选一的去判断那个更重要,就会失去领会职场中一个本质问题的机会。

文中所描述的做员工的技巧事实上很像拱猪游戏里面的梅花10(变压器),他并非与所谓的编程技能相对立,而是普遍存在于每一个程序员的身上,任何一个程序员必然同时具备这两方面的能力:编程技能与做员工的技能,而做员工的技能则像一个变压器,最终放大或缩小你的真实能力。这就是表达力的功效,而做员工的技巧正是表达力的一部分。

那表达力为什么会有价值?

我们都知道管中窥豹是不好的,但很不幸即使是在最为公正理智的组织里,大多数人仍然是被管中窥豹的。企业的组织结构基本上呈现为金字塔形状,而位置越往上,权柄越大,也即是说位置在下面的人,其评判权利掌握在其上司手中。

而当上位者对下位者进行认知时,上位者印象中的某个人和真实的某个人往往会有差异。而好的组织和不好的组织的一个区别则是这种偏差究竟是主观造成的,还是客观现实而无法避免,而绝不是这种区别是否存在。

这种差异得以存在的客观原因有很多,比如:

 

  • 信息丢失

层级一旦产生,信息往往需要中转,总经理要想看到某个人,往往要通过几个层级,这个过程中无疑的信息会被丢失。

  •  信息量过大

一个人能处理的信息是有限的。比如一个Manager负责一个20个人的团队,那么由于待处理的信息过多,就就很可能在是推卸责任还是陈述困难上产生误判。

  • 语言

 

即使是信息没丢失,不同的人对同样的信息理解也可能不一致。比如说V手势在英国就意味着滚开而不是胜利。

这类因素最终导致认知上的偏差成为一种无法规避的客观现实,是一种必须去适应而无法彻底改变的东西。像组织行为学这类学科中会把这个问题单独作为一个研究项目:印象管理(impression management),首因效应等探讨的都是这个事情。

这并不难理解,通过自我推销、赞扬别人、适当的从众、搞好人际关系这类印象管理的手段来管理个人表现面无疑的会让自己产生溢价,提升自己在别人眼中的价值。

毕竟在组织里,别人眼中的你才有现实意义,即使它和真实的你有所差异。从长期的视角来看,影响自身价值表达的几个主要因素是:资历、自身性格特征、借势的程度以及权术的运用等。这几点将在后面进行展开说明。

最后需要做一点区别的是改善表达力与恶意专营。

两者间本质上并无差别,有差别的是程度。从适用场景来看,在任人唯亲的环境里曲意逢迎是一种生存必备技能,但即使在最公平的组织里也需要改善自己的表达力。

年轻的程序员往往会仇恨上面所说的这点,并用充满负面情绪的词汇去形容这类技能比如:拍马屁,无耻。但其实不是,从人生效能的角度看,忽视这点是危险的,除非你在自身价值上已经达到了众人瞩目的地步,比如:简历上就一句话,我创造了Python。

 

最后看一个欠缺表达力的历史故事:

弹铗而歌

《战国策》和《史记》里都讲述了这样一个故事:

冯谖因为太穷而无法生活,就申请成为孟尝君的门客,但当孟尝君问他有什么本事时,冯谖却回答说自己没什么本事。

结果孟尝君虽然吸纳了他,但冯谖却被安排为最下等的门客。

孟尝君的门客有三个等级:一等门客出门有车坐,二等门客有鱼吃,三等门客只能吃粗劣的饭菜。

冯谖并不很满意,就弹自己的剑而做歌,说:长剑啊,我们回去吧!没有鱼吃。

下人把这事儿告诉了孟尝君,孟尝君还是很大度,说:那就给他鱼吃。

过一阵,冯谖又开始弹自己的剑而做歌,说:长剑啊,我们回去吧!出门没车坐。

左右的人取笑他之后,又把这消息告诉了孟尝君,孟尝君又很大度,说:给他车座。

接下来,冯谖继续弹,还是这个调子,说:长剑啊,我们回去吧!没法养家。

这时候大家已经很厌恶他了,但孟尝君还是问了他的困难,并派人给把他母亲也养了起来。

接下来冯谖连续做了几件很体现自己远见卓识的事情。

第一件是当他申请替孟尝君到自己领地上收债的时候,他把债条都给烧了。理由很简单,孟尝君家里啥都不缺,就缺人心归附。这一举措,在孟尝君被罢黜时,给孟尝君提供了东山再起的缓冲。

第二件是他去忽悠魏王,说齐国强盛都是因为孟尝君,现在他被罢黜了,如果能为魏国效 力,那么魏国富国强兵指日可待。魏王听了后,就派使臣携重礼,三次延请孟尝君到魏国为相。齐王一看,这可不得了,孟尝君确实是人才,要不然魏国怎么会这么 劳师动众来请他。孟尝君因此而得以恢复相位。

第三件是孟尝君恢复相位后,感叹说:以前那堆门客,我一落难就都跑了,现在我恢复了 相位,他们有什么脸面来见我,谁要让我见到了,我一定呸他一脸。冯谖当即跪倒进行劝谏,说:富贵多士,贫贱寡友是自然规律,希望孟尝君能够遇客如故,潜台 词是:你要这么干了,树敌不说,那还能有可用之人。孟尝君又听取了他的建议。

也就是说孟尝君很辉煌的一生和这个没事谈剑要东西的冯谖是分不开的。

也许有的程序员会感觉冯谖这样不挺好么,但在现代冯谖的做事方法实际上是取死之道,几乎百分百会被现存规则轰成灰灰。

从后来行事来看,冯谖无疑是有才华的,但他得以体现才华的机会完全依赖于时势而非是自己争取来的。

他所做的所有事情都是在看不到回报的时候多索取:要鱼、要车、要养家、从孟尝君的角 度看,这些可能连长线投资都算不上。因为在他要东西这个时间点,这个人本身有没有价值则完全没人知道—等价于无价值。在古代还有孟尝君,但在现代企业 里,这么做落在周围人的眼里就是眼高手低,几乎一定会被开除掉。指望沧海横流方显英雄本色是不太行的,万一一辈子沧海也不横流呢。

 

但偏偏冯谖和很多程序员的行事风格还真的有点类似,很多程序员擅长做事但不擅长表达,再加上很多时候程序员收入不低,所以人生境地没准就真和冯谖早时有点类似。

[转载]程序员生存定律--交换是职场里一切的根本 - 理想流 - 博客园

mikel阅读(770)

[转载]程序员生存定律–交换是职场里一切的根本 – 理想流 – 博客园.

程序员生存定律这书的目录在这里:程序员生存定律–目录

喜欢从头瞄的,可以移步。

———————————————————————————————-

支撑职场的基本规则是交换,交换的两端分别是你可创造的价值与你的职场位置(包含收入)。交换就像任督二脉间的通道一样,越是通畅,人生也就越顺风顺水;堵得越死,人也就越寸步难行。

这点要刻在脑子里,一旦要忘记了,就赶紧打自己两个耳光。忘了这点的人一旦被炒,就会很委屈的发“不要拿公司当家”这类感慨。

那什么是交换?

在一般人眼里,交换就是你有个东西我要,我有个东西你要,大家互通有无这样一个过程。但在学者眼里,事情却要更复杂一点。何新先生在《反主流经济学》中,对交换进行了深度剖析,他说:

  • 社会交换成立之第一前提,就是人类之有欲求与需要,而靠自身不能满足。

   因此,事物是否具有使用价值,决定于其能否满足人类之某种欲求与需要。所以,事物之内在属性形成其使用价值。

  • 私有制,占有,占有权利,是社会交换得以发生之第二前提。

   人有需求之物,而先为他人已据有者,若欲取之,只有二途:或强取(掠夺、战争、索要),或巧取——后者即交换。

  • 随机之交换,导致对交换品的偶然随机定价,故成交之价格有极大随意性。

  而常态之交换,则必然趋向理性之定价,即均衡定价。买卖双方经协商而接受的均衡定价之尺度,其依据乃参照商品所内涵之真实价值。

  故:(1)商品确有真实价值存在。

        (2)真实价值乃是一种无形的、形而上的虚拟实体。(马克思说:价值是一种社会关系的反映。)

  • 因此,商品价值之评估有三重性:

  一为使用价值,二为内涵价值,三为外化的实际交换价值。

  交换价格是内涵价值的外化表现。内涵价值与价格之不同,在于内涵价值是内在的、非外现的。

  • 物品买卖成交之交换量,谓之价格或市场价格。

    价格具主观性,是商品内涵固有之价值之外化。内涵价值能否得到实现,取决于需求者之购买评估。内涵价值得到市场实现,意味着商品转换为货币。

  • 但是,价值在市场中之二重化,价格对价值之背离,造成等价交换规律之破坏。等价交换意味着等价价值品之交换,并非意味同等价格品之交换。同等价格对同等价格之交换,未必是等价交换。因市场价格之形成,受市场之需求度影响,而非单纯决定于价值之同等性。

上面这段文字说的是经济,所以很多人会看的云里雾里,但其中对交换的解析入木三分,只要我们还承认工作本身也是一种个人和法人间的交换,那么就逃不出这些约束虽然有杀鸡用牛刀之嫌疑。

尽管上面的解释已经非常清楚,但为了让其更加的通俗易懂,这里附加一点说明:

交换本身起源于互有所需,比如:某一公司开发打印机驱动程序,那么就需要了解页面描述语言(PDL)、操作系统打印子系统技能的程序员。

交换本身的基本原则是等价交换,但这种原则往往会被市场需求度等因素破坏。比如:TTS可能很难搞,一个人学习了数十年,本应获得较高的市场价格,但很不幸,如果搞这个的人碰巧很多,或者应用还不广,这时候交换价格也可能很低。想想同样是在科大讯飞,工作实质没什么太大变化,但在移动互联网兴起前和兴起后交换的价格会不会有很大差异。

破坏这一原则的因素还有很多,比如说垄断。如果一个人掌握的技术只有一家公司用,那么这个公司具有破坏等价交换原则的权利。反过来讲,如果某项技术只有某个人掌握,那么这个人具有破坏等价交换的权利。

工资可以表示为一种成交价格,这一价格具有一定的随意性,具体表现为同样工作内容,不同公司,不同时间点,收入差异可能非常巨大。比如:同等技术能力下,表现力好的程序员可能更容易获得较好的薪资。但总体市场行情却在一定范围内趋向于稳定,比如毕业生的起薪大致在10K/月以下,GoogleFacebook这些公司的平均薪资相差也不大。

这也就意味着,影响最终交换价格(即工资收入的)的主要是两个因素:内含价值和市场因素(稀缺性等)。

在程序员与公司进行交换的过程中,其中最为基础的一点是你要有维护自身权利的能力,即程序员自身要有选择权,在只能被选择时,事情会趋向于另一个极端:必须不停的让步,放弃各种可争得的权利,最直接的表现是收入上没有议价能力。

很少有公司会主动宣传工作首先是一种交换,但这一事实本身却应该没什么太多的争议。但细想下来这个基础支撑点也只能是交换, 恰如食物、水与生命间的关联。对外,企业有所产出,与客户交换获取利润;对内,则是员工有所产出,与企业交换获取工资等等。这是经济形态所决定的,在这一 前提下,裁员与跳槽都是一种必然出现的现象,反倒是雇佣终身制是反其道而行。

认清交换是第一支撑之后,我们就可以推导出职场生存定律。

[转载]支付宝手机网站支付接口 FOR ECShop-PHP教程-第七城市

mikel阅读(1042)

[转载]支付宝手机网站支付接口 FOR ECShop-PHP教程-第七城市.

支付宝WAP网站版本的支付接口网上整合的比较少,看到很多网站在卖,顿觉无语。

主要是得自己查看支付宝官方提供的SDK中的开发文档。

支付宝sdk下载地址:http://club.alipay.com/read-htm-tid-9976972.html

1. 要使用支付宝手机网站支付接口,除了要配置基本的帐号外,还必须配置openssl密钥文件。关于key的生成,一定要看文档,在此不详述。文档上演示的 在线上传key的界面地址为:https://mobiless.alipay.com/home/index.htm ,key一定要存在,而且地址要正确,不然支付宝那边不能返回有效的界面

2.以独立的支付接口形式提供,便于用户根据自己的需求再做定制;

3. 附件提供的代码是简单的集成,仅起一个演示作用,没有考虑代码的复用性之类

ecshop支付宝手机网站支付接口下载地址: http://files.cnblogs.com/x3d/ecshop_payment_alipay_wap.zip

[转载]个性二维码开源专题 - 五加乘 - 博客园

mikel阅读(1085)

[转载]个性二维码开源专题 – 五加乘 – 博客园.

二维码原理介绍:

二维码为什么是黑白相间的?黑色表示二进制的“1”,白色表示二进制的“0”

“我们之所以对二维码进行扫描能读出那么多信息,就是因为这些信息被编入了二维码之中。”黄海平说,“制作二维码输入的信息可以分成三类,文本信 息,比如名片信息;字符信息,比如网址、电话号码;还有图片信息,甚至还可以包括简短的视频。”数据信息是怎么被编入的呢?信息输入后,首先要选择一种信 息编码的码制。现在常见的二维码都是以QR码作为编码的码制。QR码是矩阵式二维码,它是在一个矩形空间内,通过黑、白像素在矩阵中的不同分布,来进行编 码的。我们知道电脑使用二进制(0和1)数来贮存和处理数据,而在二维码中,用黑白矩形表示二进制数据我们肉眼能看到的黑色表示的是二进制“1”,白色表 示二进制的“0”,黑白的排列组合确定了矩阵式二维条码的内容,以便于计算机对二维码符号进行编码和分析。

 

百度经验:http://jingyan.baidu.com/article/86f4a73e520e3b37d6526981.html

 

开始使用:

命名规则最好遵守,因为套入模版使用的是反射技术,对前缀命名有要求。

 

1.创建类库

命名Yc.QrcodeLib.xxx 

2.创建类

命名QrEncode

手脚架:

基础参数:

///
/// 二维码默认参数
///

QRCodeEncoder
///
/// 二维码大小
///

public int QRCodeScale { get; set; }

///
/// 二维码版本(默认0时,自动适应版本)
///

public int QRCodeVersion { get; set; }

///
/// 二维码编码
///

public QRCodeEncoder.ENCODE_MODE QRCodeEncodeMode { get; set; }

public enum ENCODE_MODE
{
ALPHA_NUMERIC = 0,
NUMERIC = 1,
BYTE = 2,
}

///
/// 二维码容错率
///

public QRCodeEncoder.ERROR_CORRECTION QRCodeErrorCorrect { get; set; }

public enum ERROR_CORRECTION
{
L = 0,
M = 1,
Q = 2,
H = 3,
}
///
/// 二维码容边距
///

public int FrameSpacing { get; set; }
///
/// 二维码容高边距
///

public int FrameSpacingH { get; set; }
///
/// 二维码容宽边距
///

public int FrameSpacingW { get; set; }

基础方法:

///
/// 修改填充形状
///

ChangeFillShape(...)

填充色示例:

QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder();
_qrCodeEncoder.QRCodeForegroundColor = Color.Red;

背景色示例:

QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder();
_qrCodeEncoder.QRCodeBackgroundColor = Color.Red;

边距示例:

QRCodeEncoder _qrCodeEncoder = new QRCodeEncoder();
_qrCodeEncoder.FrameSpacing = 4;

 

其他就不一一示例了,都大同小异的。

希望这篇文章对大家,研究二维码有更深的认识。

 

以下是开源地址,国外github,国内oschina.net

oschina.net:

http://git.oschina.net/cheng5x/Yc.QrCode

 

github:

https://github.com/cheng5x/YcQrCode

 

官方网站
http://original-ad.com

码晒客讨论QQ群:
28629273

[转载]使用c#创建php可以调用的dll - 做最好的自己 - 博客频道 - CSDN.NET

mikel阅读(1052)

[转载]使用c#创建php可以调用的dll – 做最好的自己 – 博客频道 – CSDN.NET.

1. 创建一个 C# Class Library ,命名为:HelloWorld

2. 打开项目的属性,在点选左边的 “Application”(就是第一个tab) , 然后点击 Assembly Information 按钮 ,在弹出的Dialog中, 必须在底部勾上: Make assembly COM-visible !否则 , 这个dll将不能以COM方式访问 .(  也可以在代码中的类声明中写上[ComVisible(true)] , 效果一样,需要增加using System.Runtime.InteropServices;引用)

3. 创建强命名签名文件并使用
使用vs.net的“Vsitual Studio .Net工具”–>Vistual Studio .Net命令提示符,输入 sn -k d:\HelloWorld.snk回车即创建了强命名签名文件
打开项目的属性,点选左边Signing 勾上Sign the assembly 在 Choose a strong name key file:处选择<Browse> 选择刚才创建的HelloWorld.snk文件

4. 创建类库并编译成dll

namespace HelloWorld
{
[ComVisible(true)]
public class Hello
{
public string Write()
{

return "Hello World";
}
}

}

5. 找到dll文件夹路径 ,然后使用vs.net的“Vsitual Studio .Net工具”–>Vistual Studio .Net命令提示符
进入该dll文件夹下输入: regasm  HelloWorld.dll<回车>。
这时候,这个.dll的.net程序集就变成一个标准的Com组件了,但是还不能用,必须让它变成全局Com组件.
这个regasm 实用程序将创建一个类型库并在 Windows 注册表中对其进行注册,以使 PhysServer2.dll 中的类对 COM 客户端可用 .
需要做下面步骤
将程序集添加到全局程序集缓存中
进入提示符窗口,输入: gacutil /I HelloWorld.dll<回车>
这时,你的这个dll就被复制到全局程序集缓存中了.也就是说无论在这个电脑的哪个硬盘上都可以使用此dll组件了.
如果不进行强命名签名,这一步会提示加载失败

PHP测试

<!--?php   $r=new Com("HelloWorld.Hello");   $s=$r--->Write();
echo $s;
?&gt;

[转载]性能分析工具-PerfView - 张善友 - 博客园

mikel阅读(1252)

[转载]性能分析工具-PerfView – 张善友 – 博客园.

Roslyn的PM(程序经理) Bill Chiles,Roslyn使用纯托管代码开发,但性能超过之前使用C++编写的原生实现,这有什么秘诀呢?他最近写了一篇文章叫做《Essential Performance Facts and .NET Framework Tips》里头推荐了一个性能分析工具《Improving Your App’s Performance with PerfView》。 PerfView能够收集Windows事件跟踪(ETW)数据来追踪程序的调用流向,这些程序通过调用哪个函数识别频率。除了配置程序性能数据 (Perfmon、PAL和Xperf等工具不能轻松完成),PerfView还能分析程序内存堆来帮助确定内存的运用是否高效。它还有一个Diff功 能,可以让你确定跟踪间的任意差别来帮助你认出所有逆行。最后,该工具还有一个Dump功能可以生成一个程序内存转储。

安装PerfView

从微软下载的 PerfView 包括一个zip压缩文件,其中只有一个可执行的文件perfview.exe,这简化了安装。你可以将这个文件复制到多个你想跟踪的服务器上,然后在这些 服务器或你本地的工作站中分析数据。PerfView在Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2和Windows Server 2012上都受到支持,要求.NET FX 2.0以上。

收集配置数据

PerfView利用Windows事件追踪,而ETW从Windows 2000 Server以来就一直内置于操作系统中。只是最近才有XPerf和PerfView一类的工具利用ETW数据来解决性能问题。事件数据被收集到一个事件 跟踪日志(ETL)中。根据你想要跟踪事件的数量和时间的长度,ETL文件可能会非常大。你可以限制这个日志文件的大小,如果空间受限或者你不知道问题何 时发生的话,你还可以让它们循环。默认每毫秒一次的采样间隔在收集时间内产生了大概百分之十的CPU开支。建议大概5000个样本(5秒)用于一次代表性 配置采样。

开始一次数据收集有两种方式,用运行命令启动一个程序或者用收集命令在计算机范围内收集数据。这些命令可以由收集下拉菜单下的GUI引发,或者从 CLI或脚本中执行“PerfView run”或“PerfView collect”命令。下图显示运行命令tutorial.exe时收集数据的过程,tutorial.exe是一个内置的训练练习。
image

查看结果

一旦你在些之间针对性能问题收集了数据,你可以用PerfView分析ETL文件。该ETL文件会出现在左边的窗口,有收集日志或运行命令期间你提 供的名字。通过双击该RTL文件,十来个独立的节点会和指代它们内容的名字一起出现。例如,你会在下图中看到跟踪信息、程序、事件、CPU堆栈。双击各个 节点,适当的查看器会打开这些内容。

image

为了针对一个特定程序分析计算密集型性能问题,你将需要学习要调用的堆栈和函数。这可以通过双击左侧窗口中的“CPU堆栈”节点完成。接着你会得到 提示来选择你感兴趣的程序。最后,该CPU堆栈查看器会在独立的窗口中打开,如下图QQ进程的信息 ,你可以确定调用了哪个函数以及它们的频率。

image

如果你仔细查看上面的例子,你会发现第一行显示<<user32!?>>。“!?”代表PerfView不能解析这个模块名称。 你可以双击这个未知模块名称并选择“查找符号”来显示该模块名称。按用户指南所述配置符号路径对于解析操作系统函数名称也许是有必要的。

PerfView是一个便于用户的工具,可以用来收集和分析ETW数据用于解决配置程序性能数据的问题。这个工具可以快速地显示为这个程序执行的操作系统函数,了解性能问题可能潜藏的位置。

 

[转载]如何开发一款成功的移动游戏?试试这5个技巧_IT新闻_博客园

mikel阅读(937)

[转载]如何开发一款成功的移动游戏?试试这5个技巧_IT新闻_博客园.

  你有没有想过一款移动游戏是如何成功的?

有些游戏能够成功,而有些游戏却以失败告终。

开发出一款成功的移动应用或游戏没有神奇的公式。如果真的有,我们肯定会第一时间知道,然后你也就知道了。而且根据最近的调查和统计显示,没有能够使得移动游戏取得成功的咒语。(有人说得靠运气)

但是,如果你仔细研究那些成功的游戏,就会发现,确实有一些因素可以促进这些游戏取得成功,比如设计理念、计划(规划)、执行和营销。

其实,真的很难知道一款移动游戏是否会成功。但是有一些指导方法,游戏开发者可以遵循这些方法来开发移动游戏。

我整理出了下面五个技巧,这些技巧解决了游戏开发、部署以及推广过程中的一些核心难题。坦白地说,这并不是移动游戏开发的必杀技,但是这五个技巧可以帮助开发者增加移动游戏成功的几率。

1、老游戏依然很“酷”

你是否玩过一款游戏,发现它的用户界面和图形与以前的某款游戏特别像?其实,最近几年,有一些非常流行的移动游戏都是基于传统的、经过时间考验的桌游想法和观点开发出来的。

举个例子,有一些游戏是把真实的物理游戏动作转换为应用程序,比如绘图游戏或桌游中的 Scrabble 和 Pictionary,这些游戏在移动游戏市场也非常成功。

这是因为这些游戏是伴随玩家成长的,所以,使用熟悉的元素是你的游戏取得成功的关键。

说起比较的成功的桌游,比如 6 Freakiest and Forgotten Kids Board games,也许你可以把它开发成移动游戏,当然只是为了好玩,这完全取决于你!

2、游戏要简单

达芬奇曾说过:“简单是复杂的最终形式(Simplicity is the ultimate sophistication)”,所以我们要知道,移动游戏一定要简单。(MMO 游戏除外)

当开发一款成功的移动游戏时,一定要记住,游戏控制和 gameplay 要简单。

你玩过水果忍者吗?这个游戏就非常简单,连四岁小孩儿都能玩。只需使用手指切过水果就可以了。保持游戏简单是成功的关键,那些简单游戏要比复杂游戏的用户体验会更好。

3、从自己和他人的错误中总结经验

从自己所犯的错误中总结经验是改善生活的最好的方式,在移动游戏开发领域也是这样。有很多时候,一款游戏无论如何炒作和推广,最终还是以失败告终。这时,你一定要仔细分析游戏失败的原因,找出产品的缺陷。

在开发下一个项目时要运用这些经验教训。有些公司能够迅速从失败中找出原因,最终做出一款更成功的产品。

除此之外,还可以从其他开发人员的失败中学到经验。这里有一篇来自《信息周刊》的文章“10 Android App Flops”,也许你能从中学到一些技巧。

4、为你的游戏建立一个活跃的社区

可以为你的游戏粉丝开发一个社区。这是一个非常明智的做法,因为有相同兴趣的粉丝们愿意一起讨论,这样他们可以更方便的探讨你的游戏。有了这个社区,他们的讨论可以促进你的游戏开发。

你还可以使用像 Facebook 和 Twitter 这样的社交媒体等让用户积极参与到社区中。

这种策略已经被开发者广泛用于如 Xbox 和 Playstation 这种游戏机中。诸如光晕(Halo)和使命召唤(Call of Duty)这种非常成功的游戏都有自己的社区。甚至连愤怒的小鸟都有自己的社区(Angry Bird’s Nest http://www.angrybirdsnest.com/)。

5、如果游戏本身没有问题,就不要修改

虽然有很多移动游戏都使用同一理念,但其中总有一些会失败。所以,当你有这种顾虑时,你要坚持把成功游戏的理念结合到自己的游戏中。有一些公司会重复使用成功游戏的理念,并把它应用到下个项目中。

一个最近的例子就是 Flappy Bird,它非常成功,但又备受争议。如果从图形方面来看,它真的很简单,让人联想到任天堂时代的超级马里奥(Super Mario)的图形界面。游戏玩法也非常简单,小鸟的目标就是通过不同长度的管道缝隙。但是说起来容易做起来难。就像大多数人认为的那样,在某种程度上, 玩家对于这款游戏要么非常喜欢,要么非常讨厌。

那么,当 Flappy Bird 被开发者下架以后又发生了什么呢?Flappy Bird 的复制品进入了市场,这些复制品使用让 Flappy Bird 取得成功的相同的游戏玩法,并且充分利用了市场的需求。

创建移动游戏(通常情况下称为应用程序开发)是艺术与科技的结合。一方面,游戏的图形界面应用容易吸引玩家的眼球,而在这些视觉效果之下,注意游戏的机制要能够满足每个人的乐趣。

我用伟大的艺术家毕加索的格言作为本文的结尾,也许在你开发下一个 app 时能够给你启发:Good artists copy and great artist steal。