三体到底讲了什么(死神永生)

申明:以下内容为转载自公众号的内容,有剧透.

三体漫画作者:程垚 微信公众号:qhqh0221

前情提要

上回说到,落魄学者罗辑重获面壁者身份,利用黑暗森林法则,成功阻遏三体舰队的侵略攻势,人类与三体人形成恐怖的黑暗森林威慑平衡。可是,以罗辑一人之力维持威慑平衡真的是长久之计么?三体人难道找不出任何破绽?且看《三体》系列大结局——《三体Ⅲ:死神永生》,为您娓娓道来。(友情提示:若没看过前两期漫画,很可能会看不懂本期漫画剧情。可关注微信公号qhqh0221,看完前两期漫画再看~~~)

clip_image002[4]

 

继续阅读三体到底讲了什么(死神永生)

三体到底讲了什么(红岸与黑暗森林)

申明:以下内容为转载自公众号的内容,有剧透.

三体漫画作者:程垚 微信公众号:qhqh0221

 

三体,红岸,ETO

clip_image002


三体是什么?这是很多读者看到书名想到的第一个问题。三体对应的英文是“Three Body”,简单说就是三颗恒星。我们地球属于太阳系,太阳系仅有一颗恒星——太阳,太阳的轨道恒定,地球的轨道恒定,地日的关系恒定,因此地球才能维持相对恒定的生存环境。

clip_image004

而三体是三合星——三颗恒星无规律运转,没有恒定的生存环境——恒纪元,正所谓“三个和尚没水喝”。小说中的三体,是离太阳系最近的恒星——半人马座α星,这颗恒星轨道内的行星中,诞生了三体人和三体文明。

继续阅读三体到底讲了什么(红岸与黑暗森林)

如何在千元机中找情怀 坚果手机上手评测

坚果手机凭什么在青年智能机这片红海杀出血路,一款千元级别产品又能否容纳老罗无处安放的情怀,我们来看评测。

时隔400余天,锤子科技带来旗下第二款产品——也带来全新品牌线坚果;围绕新机,从外观到硬件、从定价再到供应商,无一不处于外界高关注中。颇值得玩味,魅蓝Note2号称“青年良品”赶在6月初推出;千元性能标杆红米Note2发布不到两周,坚果手机凭什么在青年智能机这片红海杀出血路,一款千元级别产品又能否容纳老罗无处安放的情怀,一切都要靠产品说话。

继续阅读如何在千元机中找情怀 坚果手机上手评测

Java Web开发学习笔记(1)

Web.xml中Servlet中的配置

->Servlet配置

Servlet

servlet-name:名称

servlet-class:类名称

init-param:初始化参数节

param-name:参数名称

param-value:参数值

load-on-straup:是否在启动时加载,为1时自动加载,为0时有请求时才加载

实际中如果使用了框架,例如Structs,JSF,Spring都使用此方式预加载。

Servlet-mapping配置

servlet-mapping

servlet-name

url-pattern:地址格式,可以使用通配符。

同一个Servlet可以配置多个url-pattern

后缀名称在这里的意义并不是很大,因为可以直接在这里定义不同的后缀名称。

Context Param

这个参数是所有的Servlet都能够读取的参数。配置规则如下

context-param

param-name

param-value

可以有多个同样的配置节配置不同的参数,Servlet中通过使用getServletConfig().getServletContext()方法获取servletContext对象,然后使用其getInitParameter()获取所有的context-param参数名称和参数值列表

另一个可选的方式是把参数配置写到properties文件里面。

资源注入@Resource

Annotation是Java5.0引入的新特特特性,以@符号作为标记。

例如

@Resource(name=“messageFormXml”)

private String message;

代表在运行时,只要在web.xml中配置一个messageFormXml的参数就可以了。

也可以写成下面的形式

private @Resource(name=“messageFormXml”) String message;

资源注释添加后,需要在web.xml中添加对应的节点后,才能够被读取到。

Servlet生命周期

所有用户共用同一个Servlet实例

init方法和destroy方法只会调用一次,service在每次请求时都会被执行。

可以考虑把一些配置型的事务放到init中进行,这样,可以减少执行的次数。

Servlet线程安全

Servlet不是线程安全的,所以公共私有变量有可能会存在线程同步的问题,在Servlet中定义属性的话,如果存在写入的可能,则会导致线程数据同步问题

聊聊装修的几个原则

最近房屋要忙着装修,所以了解了一些装修的知识,作为博客的一大内容,今后会增加一些装修方面的感悟.

要说装修,可实在是一个累活,找装修公司,定装修方案,量房,画图,费时费力不说,还不得不面临着被一次次提高心理价位的尴尬.

那么装修究竟有哪些实用的原则呢.最近我从网上找到一些别人的总结,这里贴一下.

继续阅读聊聊装修的几个原则

口水Intel的神级台式机: NUC

最近在为装修烦一些事,其中就是我的IMAC 5K的预算估计要没了,大概率会换成黑苹果了.

要说黑苹果,最近研究的也比较多,比如我现在用的这台机器就是黑苹果,黑苹果中装虚拟机跑Windows,我也算是奇葩了.Intel NUC可是实实在在的黑科技,机箱足够小,只有普通电视盒的大小.而且带蓝牙和红外接口输入,唯一的缺点就是价格有点低.

可能有的朋友还不认识这家伙,对家用PC机的概念也还停留在傻大黑的阶段.Intel的这台机器可以说比MAC mini更小,和MAC Mini一样,用的是笔记本的配件,比如电源呀,硬盘呀,CPU啊,内存啊,之类的都是和笔记本通用的.

来张靓照吧.

image

继续阅读口水Intel的神级台式机: NUC

说说我最喜欢的MarkDown

Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。

一、认识 Markdown

在刚才的导语里提到,Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件 WordPages 有大量的排版、字体设置。它使我们专心于码字,用「标记」语法,来代替常见的排版格式。例如此文从内容到格式,甚至插图,键盘就可以通通搞定了。目前来看,支持 Markdown 语法的编辑器有很多,包括很多网站(例如简书)也支持了 Markdown 的文字录入。Markdown 从写作到完成,导出格式随心所欲,你可以导出 HTML 格式的文件用来网站发布,也可以十分方便的导出 PDF 格式,这种格式写出的简历更能得到 HR 的好感。甚至可以利用 CloudApp 这种云服务工具直接上传至网页用来分享你的文章,全球最大的轻博客平台 Tumblr,也支持使用 Mou 这类 Markdown 工具进行编辑并直接上传。

继续阅读说说我最喜欢的MarkDown

写给我的客户

1. IT的那些人做什么呢,为什么我的需求处理这么慢.

IT部是全公司人均服务量最大的部门,现在杭州只有2个IT技术支持人员,他们涵盖了从装软件,代下载,执行公司的网络策略,桌面支持和网络规划,运维,全部的工作.平均1个人要服务于200多个员工.同样的,我们EIS服务于HR的只有1.5个人力,这1.5个人力,不仅要面对公司10多个HR以及全体公司400多名员工的DocServer咨询,我们还承担着HR新功能的开发工作,而且还担负DocServer将近100多个HR相关功能的运维工作.所以,你的需求处理的慢也很正常,如果实在很急,可以打个电话催催,说不定他忘记了呢.另外,如果想备忘,可以发邮件到hzsupport或者EIS主管的邮件,有邮件总会让他想起你的.

2. 为什么我这么一个简单的需求还要我写一个文档,太繁琐了.

软件的开发工作大概需要耗费开发人员40%-50%的日工作时间,剩下的50%-60%的时间都在和需求人员沟通需求是怎么样的,我们经常说的一句话,就是"你能说这个需求究竟是怎么样的吗",可见一个好的,完善的需求描述是多么的重要.如果你能把需求文档写得好,那么就差不多节省了将近40%的开发时间,就能够提前完成你的需求的开发工作.对软件开发来讲,理清需求是必须的,花费的时间,要么开发人员花,要么就是需求人员花.如果你的需求文档写得比较烂,那么开发人员就需要花费很多的时间去和你理清需求,也同样会浪费你很多的时间.

3. 开发估的时间太夸张了吧,这么简单的功能要2周时间

简单的定义我想对不同人是不一样的,需求人员觉得很简单的功能,可能实际分析下来不简单,如果开发人员也按照你的简单的逻辑去开发,完全系统就不可用,比如我们通常只想到界面端需要用到的东西,却想不到诸如这些信息如何管理,如何维护,如何出报表.另外,开发人员还要考虑到需求的扩展性,比如你今天想买只鸡,明天想买只鹅,那么开发人员就不能只开发出买鸡的功能.

4. 我这个功能很急的,把那个XX的功能向后挪挪吧

相信我,对于自己的事情,没有人不觉得慢的.所以,大家都很急.

我觉得如果实在你觉得很急,我们可以找那个XX一起讨论一下,让他看看能不能让一下你.

因为对于我们来说,客户是一视同仁的,既然不能按照经济价值的高低排序,我们只能按照提出时间来排序,当然,如果能得到高层的认可,我相信那个XX也会主动让你的.

5. 你搞不定是吧,那你问问XXX(你的领导)能不能搞定

软件开发是一个技术性很强的活动,如果开发人员告诉你功能不能解决或者不能搞定时,那差不多就真的是不能搞定的,一般来说,我们提出拒绝时,都是大家讨论后的结果,拒绝不代表这个事情不可以做,只是代表按照需求方提出的方式在一定的条件下不可行(比如人力超支,受众小).这个时候就需要我们召集相关人员,重新评估,形成新的需求,一般来说,XXX不能搞定的,他的领导也未必能搞得定.所以遇到问题我们还是沟通为主,避免意气用事.

6. 过程管理要上系统啊,太麻烦了吧,我还有很多工作要做呢

成熟公司的IT团队都是有Ticket系统的,Ticket系统相比邮件有很多方便的地方,对于大多数人来讲,学习使用就是20几分钟的事儿,但过程管理系统相对于邮件来讲,内容的权限管理和分享查询都要方便得多.我们也要和正规化的流程接轨嘛.

入盘小记

入市差不多两个月了,基本上就是被割韭菜的命,今天全部清仓了,终于可以好好的把这段经历写出来了.
 
开户
 
要说现在开户还真是挺简单的,上网下载一个客户端,扫描下身份证,再通过视频让你念几句话就可以完成,算下来也就一天不到就可以拿到账号,然后去网上银行绑定银证业务,不用跑柜台,直接网上银行就可以成功.
 
小试牛刀
 
开户后,就给自己说,现在刚进去,要小点玩,不能大,于是第一手进去了2000块钱.当时买的是葛洲坝.那时候的价格其实已经很高了.但是那时候是牛市呀,买什么都赚钱.当时就想着,要做长线,多拿几天.才能赚钱.
我5.25号入市的,没有拿两天,就遇到了5.28,这是第一次见证了什么叫大跌.当天股票跌了百分之七个点,虽然不多,但是下跌的心情还是很复杂,好在前两天的大涨,亏的只是收益.
 
韭菜生涯
 
俗话说,亏,才是入市的开始,要想炒股,学费是必须得交的.从5.28之后,我就见识到了股市的动荡,也试着去了解股市的一些基本的知识和概念,比如什么叫涨停,什么叫跌停,什么叫封板,以及怎么看K线.当然这些都是骗小散的,中国股市基本上没有什么技术层面可言.
这段时间,学会了逢高抛,逢低进,也相信了不信谣,不传摇,选自己的几认识的股票,长期观察走势,该进进,该出出.
学会了不大贪,不后悔,5%就出,10%就割,成功的避过了6.19的那次大跌,也幸运的逃过了几个黑色星期四.
 
股灾
 
6月底开始的这次大跌让我见识到了股灾的威力,基本上那几天,天天都以为是低点,天天补仓,但第二天都是下跌结束.由于每天都在补,所以一直没有到10%的割肉线.悲剧发生在上周三,7月1号,我们Party的生日,当天股市开盘低开,因为相信政策市,于是跌停价全仓入了海南航空,结果尾盘翻红.于是认为自己的判断正确,因为自己的股票成功的跑赢了大盘,所以在7月2号的法定砸盘日大跌的时候,就没有太在意,以为总会回来的,结果当天,海南航空坚持了天,但收盘终于大跌.然后国家出利好消息,想着有利好了,就不会跌了吧,7月3号没有持卖出盘,结果7月3号周五又是跌停开盘,当天死死的锁死在跌停板.
周末,国家出了利好,然后7月6号,周一,全体股票集合竞价涨停价,这NM的,千年未有啊,当是那个激动的,于是就想着把海南航空出了.但当天的红也只是一时,股价开始下跌,我发现挂的价格赶不上跌的价格.
当时比较笨,对股票交易规则根本不懂.其实直接挂跌停价就可以以当时的市价成交的.于是折腾来折腾去,最终在下午的时候以2点的涨幅出掉了一半的股票,希望7号会有奇迹,这几天国家天天发利好.
但7号并没有出现奇迹,而是直接低开.海南航空奋力拼杀也没有翻红,最终以亏损4个点的价格把剩下的全部出掉.
 
坑爹的B基金
 
7号股票出掉了,想买点其它的回回本,当时想也没想,就买了地产B,因为当天B的估值在上涨,而且溢价率比较高,可以迅速的扳回损失的成本,其实当时买之前没有看公告,因为地产B已经在上周五发布了下折公告.随时可能损失50%的收益.但等到发现时,已经买入了.
正是这个B,造成了我8号和9号从天堂到地域的感觉.
买入当天地产B就处于下折的边缘,不懂的可以去百度以下,其实看今天的交易,发现不懂这个的真的不止我一个.悲剧的是我买的地产B和军工B同时处于下折的边缘,而且由于大盘股指大跌,地产B于8号已经触发了下折.
 
百度了以后发现要减少B下折的风险,最好去买入对应金额的A,这样子可以合并成母基金,如果下折,也只是损失母基金的净值上的浮动收益,没有50%那么多,最多也就20%.我觉得地产B下折已经确定的情况下,地产A肯定要价格比较高吧,于是我就涨停价挂单买地产A,结果NM,昨天地产A一直徘徊在跌停价的附近,好在实际成交价格是实时价格,并不是挂什么价就以什么价格成交的.这是不幸中的万幸了.
 
买完了A,等合并成母基金的时候,发现不能合并,要到9号才行.
 
由于大盘指数的大幅下跌,地产B已于昨天晚上因净值(0.2220)远低于(0.25)触发下折,9号早盘的时候,已经临时停牌,合并失败.心想这下完了,要悲剧了.
结果,我们的解放军同志来了,今天的股票全部涨停.
这个真是一个意外.意外来了,就想着今天的小散不会买地产B,然后地产B会打开吧,因为了解今天下折的毕竟不多.这个时候,啥都缺,就是不缺韭菜,机构为逃脱,也可能自己去拉一把,哪引韭菜进入.
 
于是上午在地产A打开后,发现地产A竟然涨停,发现A涨停的时候,我就笑了,这NM,下折后A由于份额增加,净值降低,肯定会跌一段时间的,现在不出,更待何时,于是把昨天买的地产A涨停价出.
 
经过国家正规军和小散们的共同努力,到下午的时候,也许是因为B便宜,也许是因为实在是买无可买,压在地产B上的百万封单终于被抢购一空.然后地产B瞬间翻红,此时不跑,更待何时,于是把自己的B挂时价,顺利出套成功.
 
评价一下国家队吧
 
其实国家队战斗力还是不错的,只不过周一的那波完全是土豪作风,没有一点章法,然后周二拉银行,拉地产权重,周三拉创业板,周四接中小板股,然后严打空头,这几天的低开其实是一种相当好的策略,所以,今天的行动很成功.
因为股价跌的很多,交易量根本不大,所以只用不多的钱就能全线翻红.信心来了,国家队的目的就达到了.至于我们小散的钱,什么时候回本,那不是国家队应该关心的.
 
你对股市还有信心吗?反正这段时间我是觉得学到了好多,也正因为学到了好多,我才真正的理解了那句"股市有风险,入市需谨慎的道理",想赚钱,不要入市,想赌博,欢迎你,只要你运气好,就能赚得到,但是否跑得掉,能不能全身而退,还真的要看你是否对金钱不在乎.回答这个问题,我对股市没有信心,还是安安静静的工作来得好一点,牛市的时候买一点基金,熊市的时候,把钱拿出来,买点理财,还是比较好的.
最后说一点,中国的股市的确是小散扎堆的股市,一个下跌的预期就足以让小散形成踩踏事件,一个上涨的预期,也就足以让小散好了伤疤忘了疼,不信,你看,今天多少入市的,还有在遇到问题时候,一定要相信自己的判断,不懂的不要碰,不了解的也不要碰.涨停点去入和跌停点去入都是有风险的.祝所有的股民都能在股市中赚到钱,然后全身而退.

盈亏

总共投入股市4100块,现在还剩下4015块.亏损85块,盈亏 -2.1%

C#设置与获取目录权限(.net控制ACL)

 

 static public void AddDirectorySecurity(string FileName, string Account, string UserRights)
        {
            FileSystemRights Rights = new FileSystemRights();

            if (UserRights.IndexOf("R") >= 0)
            {
                Rights = Rights | FileSystemRights.Read;
            }
            if (UserRights.IndexOf("C") >= 0)
            {
                Rights = Rights | FileSystemRights.ChangePermissions;
            }
            if (UserRights.IndexOf("F") >= 0)
            {
                Rights = Rights | FileSystemRights.FullControl;
            }
            if (UserRights.IndexOf("W") >= 0)
            {
                Rights = Rights | FileSystemRights.Write;
            }

            bool ok;
            DirectoryInfo dInfo = new DirectoryInfo(FileName);
            DirectorySecurity dSecurity = dInfo.GetAccessControl();
            InheritanceFlags iFlags = new InheritanceFlags();
            iFlags = InheritanceFlags.ContainerInherit |
 InheritanceFlags.ObjectInherit;
            FileSystemAccessRule AccessRule2 = new FileSystemAccessRule(Account, Rights, iFlags,
 PropagationFlags.None, AccessControlType.Allow);
            dSecurity.ModifyAccessRule(AccessControlModification.Add, AccessRule2, out ok);

            dInfo.SetAccessControl(dSecurity);

            //列出目标目录所具有的权限
            DirectorySecurity sec = Directory.GetAccessControl(FileName, AccessControlSections.All);
            foreach (FileSystemAccessRule rule in sec.GetAccessRules(true, true,
 typeof(System.Security.Principal.NTAccount)))
            {
                Console.WriteLine("----------------------------------");
                Console.WriteLine(rule.IdentityReference.Value);
                if ((rule.FileSystemRights & FileSystemRights.Read) != 0)
                    Console.WriteLine(rule.FileSystemRights.ToString());

            }
            Console.Read();
        }