擅长java开发,喜欢数学和物理。 现供职于永辉云创。
能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
能力说明:
熟悉基本的Golang语法,能够理解程序的结构体,在命令行下调试和运行Golang程序。能使用Golang基本数据类型。
暂时未有相关云产品技术能力~
阿里云技能认证
详细说明rust语言是mozilla公司发布的一门系统级编程语言,据说目的是能够代替C语言。 没错,这个公司一直在搞操作系统,现在搞了一门写操作系统的语言。 这里主要说一下安装rust后怎么搞。
ScheduledService类位于javafx.concurrent包下面,是用来定时执行循环任务的。 ScheduledService继承自Service类,Service类会在成功执行任务后自动重新开始下一次执行,在一定的条件下及时执行失败了也会重新执行的。
Spring Data的核心接口是Repository。我们来看一下最基本的CrudRepository 接口: public interface CrudRepository extends Repository { S save(S entity); ...
Thymeleaf是另一个Java视图模板引擎,使用上和FreeMarker各有千秋,不了解的可以从其他博文里学习一下。我这里主要记录一下它的内置属性。 本文不是Thymeleaf入门教程,也不是对其标签进行全面讲解只对其属性等价标签进行记录,以为辞典。
对于使用过SpringBoot的开发者来说,程序启动的时候输出的由字符组成的Spring符号并不陌生。这个是SpringBoot为自己设计的Banner: . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ ...
SpringBoot是快速开发企业应用的一条捷径,尤其是在Spring4以后,项目完全不需要xml配置以来,让开发者感到巨大的流畅感。 我们使用Eclipse搭建一个基于maven的SpringBoot项目,不了解的可以看一下《用maven搭建springboot环境》。
目前来说,虽然开发JavaFx的工具不少,但是无疑,只有Netbeans才是最强大和最方便的,远超其他工具。 同时,Oracle官方也向开发者推荐了一个专门用于构建JavaFX场景的工具:JavaFX Scene Builder2. 诡异的是,这个工具的下载地址极其难找到。
e(fx)clipse是一个基于eclipse开发JavaFX2应用的工具。 之前的JavaFX开发必须基于Java官方自身的开发工具NetBeans,现在开发者多了一个选项。 本文译自http://www.
JBake is a Java based, open source, static site/blog generator for developers & designers JBake是用来将Java站点转化为静态网站的工具,因为静态网站访问速度更快,而且搜索引擎对静态站点的索引更直接准确。
SpringBoot不是一个新框架,它是让开发者更快的开发Spring应用的一条捷径。使用它和使用标准java类库一样,只要简单的指定合适的 spring-boot-*.jar 就可以了。
运行orchard后,登录dashboard,然后选择Module,再选择Module Gallery,搜索dynamics CRM或者CRM模块就可以安装Dynamics CRM模块了。 之后需要配置CRM的链接字符串,不是数据库的链接字符串。
erlang的方法申明是其引以为豪的,虽然被不用erlang的人嘲笑。 巨丑无比是吧。 erlang声称自己的函数调用使用的是Pattern Match模式匹配: function(Args) if X then Expression else if Y then Expr...
Orchard原生模块就很多,这里大概说一下。为的是自己不用重复开发了。 核心模块 Common通用 三大核心模块Body、Common和Identity,还有Text,都实现了它。
继续前面说列表。 列表里面的元素,第一个成为head,head之后的都叫tail。用erlang的内置方法看一下: > hd([1,2,3,4]). 1 > tl([1,2,3,4]). [2,3,4] 为什么要这样呢?因为列表的指针是在头部的,对头部进行操作是最快捷和高效的。
最近实施的项目需要用到erlang,所以这里把环境搭建一下。 Java程序员习惯了使用eclipse,所以这里说一下在eclipse里面搭建erlang的开发环境。 百度了一下,能看到不少在eclipse里面搭建环境的网文,我按照他们说的不成功。
目前在做.net开发。 需要开发一套webapi. 这里记录一下某些注意点。 1. 如何开启跨域 如果webapi的用户是域外用户,则需要根据需要开放跨域。 首先安装Install-Package Microsoft.AspNet.WebApi.Cors 在WebApiConfig.cs里开启config.EnableCors(); 可以控制开放的范围,例如只开放某些controller,还是全局都开发等到。
如果你通过UCMA程序和别人在同一个会话里同时使用了IM和语音,说不定有时候会遇见以下异常: Microsoft.Rtc.Signaling.OperationFailureException: Application must register for ConversationChanged event when a call is moved to a derived conversation. 尤其是当你想要在只有IM或者应用共享的会话里增加语音选项时异常总会发生,远端会重定向语音给一个PSTN通话。
原文地址:http://blog.greenl.ee/2012/02/22/conversation-objects-for/ 为了让开发者尽情的扩展Lync的功能而无需了解SIP协议的本质,UCMA引入了很多抽象类,其中最常用的就是Conversation类。
说是注意事项,其实下面的完全不够全面。只是我学习过程中积累的一点经验,记下了,免得以后每次都去谷歌必应。 为了体验Lync Server2013的功能,我想要搭建一个逼真的环境。 按照文章《http://windowspbx.blogspot.hk/2012/07/step-by-step-installing-lync-server.html》的教导,我新建了几台虚拟机,每个分配内存2G,硬盘25G(我的机器一共内存12G,硬盘500G,立即就捉襟见肘了)。
之前没有用过windows的服务器版本,第一次接触,按照教程搞定了不少,不过问题也遇到了一些。 这里说一下自己预计和解决的一些问题,希望对有人有用。 1. AD CA安装后就不能修改计算机名称和域了。
UCMA4初体验中说到了用UCMASampleHelper帮助建立连接,现在来看自己如何建立。 前文说到了,过程分四步:创建终端、认证终端、会话建立、连接建立。 1.UserEndpoint的构造方法只有一个: public UserEndpoint(CollaborationPlatform platform, UserEndpointSettings settings); 第一个参数是平台,第二个是配置。
进入新公司需要新技能。以前从来没用过C#,但是现在的项目是Lync API开发,只能抓紧从头开始了。 网络上关于UCMA4的文章并不多,微软的网站上可能有不少,还有一些视频,不过并不适合入门。
作为本系列的最后一篇文章,我们来看被广为研究的SAT问题。 SAT问题是第一个被证明为NP问题的判定问题。更多信息可以去百度或者维基一下。 前面我们看到了Horn公式可满足性的判定算法,现在把它推广到任意公式Φ。
上一篇说了线性时态逻辑LTL。那么LTL公式能够检测那些实际相关的性质呢? 我们可以要求实际的系统具有以下一些性质: 1)在1)started成立但在ready不成立时,不可能到达状态: G ┐( started ∧┐ ready ) 2)对任何状态,...
前面说了谓词逻辑。实际上谓词逻辑还需要了解的有谓词逻辑的语义推导和谓词逻辑的完备性。不过这一块的概念和思想都很复杂和繁冗,本系列略去。 基于模型是和基于证明相对的。前面我们一直在使用证明,好像看起来还不错。
前面说到了谓词逻辑的一些等价关系: 1.(a) ┐∀xΦ⇔∃x┐Φ (b) ┐∃xΦ⇔∀x┐Φ 2.假设x在Ψ中不是自由的,那么: (a)∀xΦ∧Ψ⇔∀x(Φ∧Ψ) (b)∀xΦ∨Ψ⇔∀x(Φ∨Ψ) (c)∃xΦ∧Ψ⇔∃x(Φ∧Ψ) (d)∃xΦ∨Ψ⇔∃x(Φ∨Ψ) ...
前面我们说过 “不是所有的鸟都会飞”用谓词逻辑表示有两种方式: B(x):x是一只鸟 F(x):x可以飞翔 这个语句就可以编码为:﹁(∀xB(x)→ F(x)) 换而言之“只要是鸟就会飞,这种情况是不成立的”,上句话也可以编码为:∃ x(B(x) ∧﹁F(x) ) 所以可知,在某些量词形式之间存在着语义的等价。
谓词逻辑公式涉及两种事物: ⑴是我们谈及的对象,如a和p这样的个体,以及x和u这样的变量和函数符号。在谓词逻辑中,用来表示对象的表达式称为项(terms); ⑵是表示真值,即公式,例如Y(x,m(x))是公式。
前面已经说完了命题逻辑。命题逻辑的可满足性是基于原子命题的赋值,但它局限性很大,只能处理或且非和如果那么这几种情况。你不会简单的认为这就足够了吧。举个例子吓到你: › “所有的人总是要死的” p › “苏格拉底是人” q › “所以苏格拉底是要死的” r 其中前两条是前提假设。
Horn公式,中文名一般翻译成“霍恩公式”,也是范式的一种。 Horn原子有三: P::= ┴ | T |p Horn原子 分别是底公式、顶公式和命题原子。 Horn原子合取后的蕴含称为Horn字句: A::= P | PΛA C::= A → P ...
从上一篇文章数理逻辑之 命题逻辑完备性终于到现在找到了满意的工作:一家大型外企,各方面都很满意。 今天开始说范式。先介绍几个概念。 语义等值:令Ф和ψ是命题逻辑公式,我们称Ф和ψ语义等值当且仅当Ф ╞ ψ 且ψ ╞ Ф成立。
上文说了数理逻辑的可靠性,今天说完备性。 说之前先提一下自己这一周找工作的进展:略有收获,依然惨淡。 可以下读我的博客《找工作时怎么谈待遇?果然是一个老大难》。 前面证明了如果φ1, φ2,..., φn |- ψ 成立,则 φ1, φ2,..., φn |= ψ 成立。
自从上一次发表博文去还是留,已不是一个问题(续)到现在,又经历了不少公司(可以用无数来形容了)。 现在遇到的最大的问题就是面试通过后待遇怎么谈,应该说多少。 虽然上海又经历了不少的公司,面试经历也千差万别。
说道数学归纳法,大家并不陌生。 这一节先来回顾一下我们似曾相识的归纳法,然后用它解决一个问题。 先来回忆一个小故事:高斯8岁的时候快速计算连续自然数的和。 咦!你感觉无聊了没:竟然有是这个故事,小时候都不知道听多少遍了。
前面说完了命题,使用命题可以构造命题逻辑的形式语言。 首先来看合式公式。 一个合式公式可以是一个原子命题,也可以是由其他合式公式通过否定、合取、析取、蕴含得到的。 其形式如下: Φ::=p|(┐Φ)|(Φ→Φ)|(Φ∨Φ)|(Φ∧Φ) 其中p代表任意原子命题,::=右边的Φ代表任一个已经构造好的合式公式。
前面说完了自然演算规则,现在来说导出规则。 导出规则有四个,分别是:MT导出规则,双重否定引入规则,PBC导出规则,LEM导出规则。 记的的同学可能会问了:咦,前两个不是在自然演算规则里出现了吗? 是的,实际上,前面说的自然演算规则中这两个的确是提前说了,它们属于导出规则。
上一篇说了析取规则和copy规则。还能不能想起来? 今天来看(Ⅷ) 否定规则。 先给一个定义——矛盾公式:称ΦΛ¬Φ或¬ΦΛΦ为矛盾公式。其中Φ是任意公式。 也就是是任意一个公式和自己的否定进行合取得到的公式都是矛盾公式。
昨天学习了蕴含引入规则和定理、等价的概念。后面还有一个练习题。 先来公布一下练习题的参考答案:例14 证明相继式 p → q |- p ∧ r →q ∧ r是有效的 继续看自然演算规则:(Ⅵ) 析取规则 看到析取规则一定就想起了曾经的合取规则吧,能不能想起合取规则有几个,分别是啥样的? 不过析取规则与合取规则相比,有本质上的区别。
截止到前文数理逻辑之 自然演算规则(二),我们已经学习了四种7个命题逻辑的自然演算规则,分别是合取规则、双重否定规则、蕴含消去规则、MT规则。 接下来我们要学习的规则不仅从规模上看起来比前面的要大,理解和使用上也提升了难度。
今天继续说自然演算规则。 不过说之前先说一点题外话:每个人都有自己喜欢的东西,虽然大家都是搞开发的,不过最喜欢的也很可能不一样。你是牛人我也是牛人,只不过我们牛逼的地方不一样,我们都没有必要为了超过对方而去努力学习自己不稀罕的东西。
上一篇数理逻辑之 命题讲了关于命题的基本概念。 那么如何建立一个用于命题推理的演算,使得我们能建立前面论证的有效性呢?我们希望有一个规则集合,每条规则可以在给定某一前提假设序列,而得出一个结论。
本来不打算再写这种文章了,因为这种说说情况、发发牢骚的内容看起来更像怨天尤人。可能找工作中各种情况都会遇到,当成自己的经验就行了,何必拿出来供大家吐槽呢?不过今天的经历还是更让我打算写下来,说两句。
数理逻辑的一项重要任务是回答“什么是证明?” 并试图将“证明”这一概念(与之相关有可计算性概念)精确化。基于这个目的,数理逻辑需要设计适当的语言用于对计算机科学领域中遇到的情景建模,以便于对它们作形式推理,得到我们想要的结论。
打算发表一系列关于数理逻辑基础的小文章,希望对一部分读者有用。 数理逻辑又称符号逻辑、理论逻辑。它既是数学的一个分支,也是逻辑学的一个分支。是用数学方法研究逻辑或形式逻辑的学科。其研究对象是对证明和计算这两个直观概念进行符号化以后的形式系统。
在公司待得越来越没意思了,原因很多,下面会提到。最近一直在找新工作,可惜目前还是一无所获。 先说说近来面试的情况。 找工作的途径我真的不了解。作为职场新人,我感觉敢想到跳槽已经是很大的一步了。
原文地址 http://www.gradle.org/docs/current/userguide/java_plugin.html 23.1. Usage用法 要使用Java插件,在脚本里加入: Example 23.1. Using the Java plugin build.gradle apply plugin: 'java' 23.2. Source sets源集 Java插件引入了一个概念:源集(source set),一个源集就是一组被一起编译一起执行的源文件。
原文地址 http://www.gradle.org/docs/current/userguide/writing_build_scripts.html 13.1. The Gradle build language构建语言 Gradle提供了一种“领域专用语言”(domain specific language) 或者 DSL对构建进行描述。
原文地址 http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html 8.1. What is dependency management?何谓?为何? 依赖管理大致有两块:首先Gradle需要找到你工程需要的东西,这些东西就是所谓的“依赖”。
原文地址 http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html 7.1. The Java plugin插件 我们已经看到Gradle是一个通用构建工具,它可以完成相当多的任务,只要你能在脚本里定义好。
原文地址http://www.gradle.org/docs/current/userguide/tutorial_using_tasks.html 6.1. Projects and tasks工程和任务 Gradle中的任何东西都基于俩概念: projects 工程 和 tasks 任务。