本指南将帮助你在CentOS 6 Linode上运行 Postfix,使用 Dovecot 运行 IMAP / POP3 服务,使用 MySQL 存储有关虚拟域名和用户的信息。...设置并测试域名和用户 注意 在进行下面的步骤之前,通过添加指向邮件服务器的完全限定域名的 MX 记录,修改你希望处理的电子邮件的任何域名的DNS记录。...这样就完成了新域名和电子邮件用户的配置。 注意 考虑到在单个邮件系统上虚拟托管大量域名的可能性,电子邮件地址的用户名部分(即在@符号之前的部分)不足以进行认证。...当电子邮件用户向服务器进行身份验证时,他们必须提供上面创建的完整电子邮件地址作为用户名。 检查你的日志 测试邮件发送之后, 检查邮件日志以确保邮件已传送。...配备 Debian-Lenny 和 Postfix 2.5 的 ISP 风格电子邮件服务器指南 配备 Group-Office、Postfix、Dovecot 和 SpamAssassin 的群件服务器
安装SBT Play使用SBT作为构建工具,一个Play项目其实就是一个SBT项目。单击这里下载并安装SBT。 ...Play并没有实现Servlet容器,而是使用Akka Http实现了一个高性能的Http服务器,所以Play项目的运行不依赖于Tomcat等Servlet容器。...发布Play项目 Play项目的发布也是通过sbt命令完成的,进入命令行执行sbt dist,命令执行完成后,在target\universal目录下会生成应用文件play-scala-starter-example...将play-scala-starter-example-1.0-SNAPSHOT.zip上传至服务器并解压,执行启动命令: nohup ....也就是说你完全可以使用文本工具开发Play项目,然后在命令行进行构建。但是为了提高开发效率,还是建议使用IDEA进行开发,不仅有语法提示上的优势,在Play项目调试时IDEA将发挥很重要的作用。
Play环境,可以单独使用,通过如下方式可以将它引入到自己的项目: libraryDependencies += "com.typesafe.play" %% "play-json" % playVersion...的JSON库里,整形和浮点型都使用JsNumber表示,这是一个略为糟糕的设计,因为会导致JSON数据无法在多语言环境下共享。...常见互转操作 将上面两个隐式 Format 对象导入到当前作用域,我们便可以自由地在 JsObject 和 Case Class 之间进行互转: val person = Person("joymufeng...(p) //转换失败 case e: JsError => println(e.errors) } 开发技巧 上面的代码在转换时需要将隐式的 Format 对象显式地导入到当前的作用域...在 Json 处理领域,Play 和 Scala 有着天然的优势,一方面通过 Scala 的优雅语法以及 Play 的 Json DSL,我们可以轻松地构建和处理 Json;另一方面,相比于 Java
Twirl使用@符号区分Scala表达式和HTML文本,即以@符号开头的部分是Scala表达式,其余部分即为HTML内容。 我们可以通过@符号在函数体内引用参数: Hello, @name!...层使用模板页面,在 Service 层一样可以使用。... } 处理表单 用户在浏览器端通过Html表单填充业务数据并提交至服务器端进行处理,与之对应的,Play 在服务器端提供了 Form 类用于处理与Html表单相关的操作: 数据绑定 数据校验...数据抽取 错误处理 页面渲染 在使用 Play 的 Form 相关功能之前,需要先导入如下路径: import play.api.data._ import play.api.data.Forms...nonEmptyText: 映射为非空的 scala.String 类型, 可以使用 minLength 和 maxLength 参数限定长度。
概览 在本文中将介绍 Scala 的 Play Web 开发框架。...命令行工具 Play 框架官方文档提到 sbt 是一个强大的控制台和构建工具,我们可以从使用 sbt 工具生成一个空白的 Play 框架的项目开始。...sbt new playframework/play-scala-seed.g8 在依赖信息加载完成后,该工具将提示并要求我们输入新项目的名称和组织信息 This template generates...当 Play 项目服务器接收到请求时,它首先会检查 conf/routes 文件,以确定哪个 Controller 控制器和方法将处理该请求。...总结 在本文中,我们使用 Play Framework 的命令行工具创建了一个简单的网站,添加了一个新的视图模板,并使用参数化模板定义了一条新路由。
逸言 | 逸派胡言 本文是函数式编程思想与领域建模的第二部分,重点讲解无副作用的纯函数与领域模型之间的关系。 纯函数 在函数范式中,往往使用纯函数(pure function)来表现领域行为。...《Scala函数式编程》认为常见的副作用包括: 修改一个变量 直接修改数据结构 设置一个对象的成员 抛出一个异常或以一个错误终止 打印到终端或读取用户的输入 读取或写入一个文件 在屏幕上绘画 例如,读取花名册文件对内容进行解析获得收件人电子邮件列表的函数为...假设客户端要根据解析获得的电子邮件列表发送邮件,解析的花名册文件路径为roster.txt。...在Scala语言中,bind功能就是flatMap函数。可以简单地将flatMap函数理解为是map与flattern的组合。...,分别从ns和os中取值,然后利用yield生成器将计算得到的积返回为一个列表;实质上,这段代码与使用flatMap和map的代码完全相同。
看一个我们都熟悉的场景——电子邮件。...我们发送电子邮件,实际上就是将一个邮件文件从我们的电脑转发到对方电脑上,但是我们在发送的时候,并不需要关心对方的电脑是否开着,只管发送就好,邮件会先被发送到邮件服务器上,然后当对方电脑开机时,再从邮件服务器上获取邮件...邮件服务器就是一个消息系统,可暂存应用之间通信所发送的消息。...这种通信模式起到了解耦的作用,减少了生产者的职责。生产者只需关注生产消息和把消息发送到消息系统,而消费情况无需关注。...例如一个下单操作,需要涉及优惠券、积分和短信等系统的处理,如果使用同步则需要等所有系统都处理完,但这样下单系统的响应时间将大大增加。
例如,ParArray 是Array 对应的并行版本,同样的,ParHashMap、ParHashSet 和ParVector 分别对应于HashMap、HashSet 和Vector。...我们可以使用par()和seq()方法来在顺序集合及其并行版本之间进行相互转换。...java创建共享可变变量,并使用同步原语来提供线程安全性。使用JDK 库很难在短时间内做到正确的并发。 注意: 更多依赖无状态Actor,少用有状态Actor。...尽量避免使用ask().双向通信不是一个好主意。“发送并忘记”(!)模型好得多。 示例: 统计字符串的次数。...Play("Depp1") hanks ! Play("Hanks1") depp ! Play("Depp1") depp !
输入命令: play run Play自己包含有一个网络服务器模块,所以不需要和apache衔接,就可以作为网络服务器,直接工作。 ...在Java编程中,action是controller类的一个方法。action的响应可以传给某个视图,比如上面的index.scala.html,从而更好的控制显示效果。...持续运行 Play自带的服务器可以持续运行。将Play安装在目标服务器,比如云上后,在Play项目的根目录下,用: play start 来持续运行服务器。此后你可以按Ctrl-D来返回命令行。...此时的Play不依赖于Shell,即使退出服务器的登陆,Play还是会持续运行。 使用其它端口运行: play "start -Dhttp.port=8080" 停止运行。...切换到项目的根目录下,使用命令: play stop 总结 play new play run 动态生成响应 model-control-view
它是一个现代化的全栈Web框架,基于Java和Scala开发,特别适合构建高性能、可扩展的Web应用和REST API。...对于使用Java或Scala的开发者,只需要安装SBT(Simple Build Tool)就可以快速启动一个Play项目。 安装SBT: 如果你是Java开发者,可以从 sbt 官网 下载并安装。...如果你是Scala用户,可以选择: 1 sbt new playframework/play-scala-seed.g8 这会创建一个带有基本结构的项目,包括控制器、路由和视图。...; }} 视图(View)部分,Play Framework 使用了Twirl模板引擎。它的语法简单且与Scala紧密集成,可以动态生成HTML内容。...经过一些简单的尝试,发现Play Framework 非常适合那些需要快速开发、响应式和高并发的应用场景。尤其是如果你喜欢Java或Scala,Play 的简洁语法和强大功能绝对会让你惊喜。
) 我们是用apply(consume)来连接Enumerator和Iteratees的。...//> TigerHoverGrandJohnres1: demo.worksheet.enumerator.futPrint.type = Success(()) 我们也可以使用函数符号...}(dec) step(it) } } 从这段代码 case Step.Cont(k)=>inner[A](step, k)可以推断操作模式应该是当下游Iteratee在Cont...(sumIteratee) //> res4: scala.concurrent.Future[play.api.libs.iteratee.Iteratee[String,Int]] = List...() strNums |>> strToInt &>> sumIteratee //> res5: scala.concurrent.Future[play.api.libs.iteratee.Iteratee
应用服务器的实现需要选择特定语言(Node.js,Ruby,PHP,Scala,Java,C#.NET等)和该语言的Web MVC框架(Express for Node.js,Ruby on Rails...,Play for Scala,Laravel for PHP等)。...学习SQL是必不可少的,几乎所有的Web应用都会使用它。 5. 缓存服务 缓存服务提供了一个简单的键/值数据存储,可以在接近O(1)的时间内保存和查找信息。...运行工作来编码视频和照片,处理CSV以进行元数据标记,聚合用户统计信息,发送密码重置电子邮件等。工作队列可以采用优先级队列算法,以确保尽快完成发送密码重置电子邮件等时间敏感操作。 作业服务器处理作业。...您可以使用它来存储和访问或多或少存储在本地文件系统上的任何内容,并且可以通过HTTP上的RESTful API与其进行交互。
Play Framework ——Java和Scala的高速Web框架 Play Framework是一个开源的Scala框架,于2007年首次发布。...它目前被一些相当大的名称网站使用,包括LinkedIn,三星的IoT Artik平台和教育网站Coursera。在撰写本文时,Play 2.6是Play的当前版本,已在开发中取代了Play 1。...Play 2是被动的,允许并行远程呼叫。这意味着它适用于WebSockets和其他相关的以服务器为中心的方法。 5. 它为资产汇编、格式处理、数据库集成等提供了广泛的框架支持结构 6....Akka HTTP ——Akka HTTP模块在akka-actor和akka-stream之上实现完整的服务器和客户端HTTP堆栈 Akka HTTP是Scala的高度模块化和极其强大的...它专为RESTful开发而设计,也是开发人员之前在Java Framework空间中使用Dropwizard和Twitter Commons的经验之谈。他们将Chaos设计为Play的简化版。
如果你正在运行 Confluence 6.8 或者后续版本,邀请你的小组开始使用 Confluence 服务器的移动应用,可以使用下面的方法。...电子邮件模板 下面是一个建议使用的电子邮件模板,你可用使用这个默认的电子邮件模板来让你的用户了解到你的服务器是移动应用可用的。...在你将电子邮件发送出去的时候,请不要忘记自己先测试下以确定所有的应用和链接都是可用,可用访问的。..., Confluence 移动应用当前已经可以在 Android 和 iOS 上下载并且安装了,你可用通过它们来访问我们安装的 Confluence 实例。...**和安装证书的步骤>** 祝好, 你的名字,你职位,你公司的部门,你公司的名字 完整的格式化的邮件模板格式,请参考网页 邀请使用 Confluence 移动应用的电子邮件模板 中的内容
Query模型相对简单,因为它本质上就是一个没有副作用的只读操作。...最初的Scala语言也实现了简单的Actor模型,但随着AKKA框架的推出,Scala放弃了自身的Actor,转而选择使用AKKA。...在《Scala并发编程》一书中,Aleksandar Prokopec形象地描述了Actor系统: Actor系统模仿了人类的组织,如公司、政府和其他大型机构。...为了高效地工作和决策,员工们使用电子邮件进行通信。 当员工早上上班时,就会检查他的电子邮箱并对重要的消息做出回应。如果某封电子邮件非常重要,那么这个员工就必须立刻回复这封邮件。...电子邮件是Actor之间彼此发送的消息(Message),一旦发送了消息,就不必等待收件人的回复,可以继续自己的工作,也就是说这种消息发送的方式是异步非阻塞的。
一旦安装成功,黑客使用一个动态的DNS服务器和通过SSL协议的Gmail来搜集Android设备上的文本信息、签名证书和银行密码。 下面是主程序、附件程序、恶意代码之间的关系图: ?...在代码中,ak40.txt是/storage/sdcard0/temp/文件夹中一个包含字符串的文件。当内容为1时,SMS消息会被发送到一个电子邮件地址。...电子邮件地址和密码都存储在/storage/sdcard0/temp/目录下的文件中。黑客所用SSL协议的Gmail来规避大多数AV厂商在网络流量中的特征检测方法。 2. 窃取签名证书和密钥 ?...同名的“all.zip”文件会被上传到服务器,并命名为“{PHONE_NUMBER}_npki.zip”附件通过Gmail发送。 3.窃取银行账号密码 ?...同一文件更名为{PHONE_NUMBER}_npki.zip并以Gmail附件方式使用SSL加密发送。下面的图片显示,从附件解压后,恶意程序软件传输到SMTP服务器的签名证书文件和签名用到的密钥。
有些问题是用户升级相关,有些涉及使用习惯的变化,还有些是开发者的配适问题。...一旦系统更新适配于您的设备,我们会发送通知提醒您下载并安装更新。 * 但请注意,Nexus 6 及 Nexus 9 设备将不会提供 Android 8.0 更新。...Q: 为什么通知圆点功能在 Nexus 5X / 6P 和 Pixel C 设备上不起作用? ?...您可以在 Google Play Store 上下载支持这个特性的其他启动器。 Q: 怎么开启 Nexus 5X / 6P 以及 Pixel C 上的 “自动打开 Wi-Fi” 功能? ?...Q: 关于应用图标的新样式,为什么和以前看起来不一样? A: 在 Android 8.0 中,应用图标现在已经规范成了圆形或者方形。
服务器可以把不同的数据传递给同一个模板,从而产生不同的页面。 Play同样也有一套模板系统。模板的大部分内容都可以用html写,作为视图,而在一些特别的地方,预留给数据参数。...在模板中,用Scala语言来调用参数。 使用模板 我首先创建一个模板,纯粹起视图功能。在app/views文件夹中,新建文件index.scala.html (如果已有,则删除并重新创建)。 Play会根据模板,自动生成相应的类。 *** 也可以用import引入views.html.index,而不是使用完整的类路径。 访问页面: ?... 上面的第一行,以@符号开头,说明了该模板所接收的两个参数,即String类型的title和content。在模板中,用@符号和参数名,来调用参数。...其它 在@* *@中加入注释 由于@的特殊功能,为了在模板中显示"@"字符,需要使用@@。 总结 模板 render() @
Scala,作为一种强大的多范式编程语言,提供了丰富的库和框架,使其成为开发高效爬虫的理想选择。本文将探讨Scala爬虫在建筑业大数据分析中的作用,并提供实现代码示例。...这些数据散布在不同的平台和系统中,包括政府公开数据、行业报告、在线论坛和专业网站等。通过数据挖掘,企业可以:●市场趋势分析:了解建筑材料价格波动、市场需求变化等。...●丰富的库支持:Scala拥有如Akka、Play Framework等库,支持快速开发。●类型安全:Scala的强类型系统减少了运行时错误,提高了代码的稳定性。...环境准备首先,确保你的开发环境已安装Scala和sbt(Scala的构建工具)。...例如,使用机器学习模型来预测建筑材料的价格趋势,或者使用统计分析来评估项目的进度和成本。
领取专属 10元无门槛券
手把手带您无忧上云