<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>如何 on 庞玉栋个人博客</title><link>https://pangyd.com/tags/%E5%A6%82%E4%BD%95/</link><description>Recent content in 如何 on 庞玉栋个人博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 23 Feb 2018 14:27:37 +0800</lastBuildDate><atom:link href="https://pangyd.com/tags/%E5%A6%82%E4%BD%95/index.xml" rel="self" type="application/rss+xml"/><item><title>Kotlin 扩展函数详解与应用</title><link>https://pangyd.com/post/185-kotlin/</link><pubDate>Fri, 23 Feb 2018 11:31:21 +0800</pubDate><guid>https://pangyd.com/post/185-kotlin/</guid><description>&lt;h1 id="一什么是扩展函数">&lt;a href="https://www.jianshu.com/u/dcf7bd45aecd" target="_blank">一、什么是扩展函数？&lt;/a>&lt;/h1>&lt;p>扩展函数数是指在一个类上增加一种新的行为，甚至我们没有这个类代码的访问权限。这是一个在缺少有用函数的类上扩展的方法，Kotlin能够为我们做到那些令人关注的事情，而这些Java做不到。&lt;/p>&lt;p>在Java中，通常会实现很多带有static方法的工具类，而Kotlin中扩展函数的一个优势是我们不需要在调用方法的时候把整个对象当作参数传入，它表现得就像是属于这个类的一样，而且我们可以使用this关键字和调用所有public方法。&lt;/p>&lt;h1 id="二扩展函数的使用">&lt;a name="t1">&lt;/a>&lt;a href="https://www.jianshu.com/u/dcf7bd45aecd" target="_blank">二、扩展函数的使用&lt;/a>&lt;/h1>&lt;h3 id="1函数的扩展">&lt;a name="t2">&lt;/a>（1）函数的扩展&lt;/h3>&lt;p>简单来说，Kotlin扩展函数允许我们在不改变已有类的情况下，为类添加新的函数。例如，我们能够为Activity中添加新的方法，让我们以更简单术语显示toast，并且这个函数不需要传入任何context，它可以被任何Context或者它的子类调用，比如Activity或者Service：&lt;/p>&lt;pre class="prettyprint">&lt;code class="hljs avrasm has-numbering">fun Context&lt;span class="hljs-preprocessor">.toast&lt;/span>(message: CharSequence, duration: Int = Toast&lt;span class="hljs-preprocessor">.LENGTH&lt;/span>_SHORT) {
 Toast&lt;span class="hljs-preprocessor">.makeText&lt;/span>(this, message, duration)&lt;span class="hljs-preprocessor">.show&lt;/span>()
}&lt;/code>&lt;ul class="pre-numbering" style="text-align: right">&lt;li>1&lt;/li>&lt;li>2&lt;/li>&lt;li>3&lt;/li>&lt;/ul>&lt;/pre>&lt;p>当然你也可以这样写：&lt;/p>&lt;pre class="prettyprint">&lt;code class="hljs avrasm has-numbering">fun Activity&lt;span class="hljs-preprocessor">.toast&lt;/span>(message: CharSequence, duration: Int = Toast&lt;span class="hljs-preprocessor">.LENGTH&lt;/span>_SHORT){
 Toast&lt;span class="hljs-preprocessor">.makeText&lt;/span>(this, message, duration)&lt;span class="hljs-preprocessor">.show&lt;/span>()
}&lt;/code>&lt;ul class="pre-numbering" style="text-align: right">&lt;li>1&lt;/li>&lt;li>2&lt;/li>&lt;li>3&lt;/li>&lt;/ul>&lt;/pre>&lt;p>对参数的解释：&amp;nbsp;&lt;br>- Activity：表示函数的接收者，也就是函数扩展的对象&amp;nbsp;&lt;br>- . ：扩展函数修饰符&amp;nbsp;&lt;br>- toast：扩展函数的名称&lt;/p>&lt;p>我们可以在任何地方（例如在一个工具类文件中）声明这个函数，然后在我们的Activity中将它作为普通方法来直接使用（这里的两种使用方式后文会做解释）：&lt;/p>&lt;pre class="prettyprint">&lt;code class="hljs scss has-numbering">override fun &lt;span class="hljs-function">onCreate(savedInstanceState: Bundle?)&lt;/span> { 
 &lt;span class="hljs-value">super&lt;/span>&amp;lt;BaseActivity&amp;gt;&lt;span class="hljs-class">.onCreate&lt;/span>(savedInstanceState)
 &lt;span class="hljs-function">toast(&lt;span class="hljs-string">"This is onCreate!!"&lt;/span>)&lt;/span>
 &lt;span class="hljs-function">toast(&lt;span class="hljs-string">"Hello world!"&lt;/span>, Toast.LENGTH_LONG)&lt;/span>
}&lt;/code>&lt;ul class="pre-numbering" style="text-align: right">&lt;li>1&lt;/li>&lt;li>2&lt;/li>&lt;li>3&lt;/li>&lt;li>4&lt;/li>&lt;li>5&lt;/li>&lt;/ul>&lt;/pre>&lt;p>当然了，Anko已经包括了自己的toast扩展函数，跟上面这个很相似（关于Anko是什么，你可以看我的这篇文章。。。）。Anko提供了一些针对CharSequence和resource的函数，还有两个不同的toast和longToast方法：&lt;/p>&lt;pre class="prettyprint">&lt;code class="hljs erlang has-numbering">&lt;span class="hljs-function">&lt;span class="hljs-title">toast&lt;/span>&lt;span class="hljs-params">(&lt;span class="hljs-string">"Hello world!"&lt;/span>)&lt;/span>
&lt;span class="hljs-title">longToast&lt;/span>&lt;span class="hljs-params">(&lt;span class="hljs-variable">R&lt;/span>.id.hello_world)&lt;/span>&lt;/span>&lt;/code>&lt;ul class="pre-numbering" style="text-align: right">&lt;li>1&lt;/li>&lt;li>2&lt;/li>&lt;/ul>&lt;/pre>&lt;p>&lt;strong>有一点值得注意：&lt;/strong>扩展函数并不是真正地修改了原来的类，它的这些作用效果是以静态导入的方式来实现的。扩展函数可以被声明在任何文件中，因此有个通用的方式是把一系列有关的函数放在一个新建的文件里，就像我们刚才所说的工具类当中。&lt;/p>&lt;p>我觉得还是再举几个几个例子来说明一下吧，因为它们完全显示扩展函数的力量。&lt;/p>&lt;h5 id="在-toast-中的高级用法">● 在 Toast 中的高级用法&lt;/h5>&lt;p>我们首先看看这个例子：&lt;/p>&lt;pre class="prettyprint">&lt;code class="hljs avrasm has-numbering">fun Context&lt;span class="hljs-preprocessor">.niceToast&lt;/span>(message: String,
 tag: String = javaClass&amp;lt;MainActivity&amp;gt;()&lt;span class="hljs-preprocessor">.getSimpleName&lt;/span>(),
 length: Int = Toast&lt;span class="hljs-preprocessor">.LENGTH&lt;/span>_SHORT) {
 Toast&lt;span class="hljs-preprocessor">.makeText&lt;/span>(this, &lt;span class="hljs-string">"[$className] $message"&lt;/span>, length)&lt;span class="hljs-preprocessor">.show&lt;/span>()
}&lt;/code>&lt;ul class="pre-numbering" style="text-align: right">&lt;li>1&lt;/li>&lt;li>2&lt;/li>&lt;li>3&lt;/li>&lt;li>4&lt;/li>&lt;li>5&lt;/li>&lt;/ul>&lt;/pre>&lt;p>我们增加了一个默认值是类名的参数，如果这是在Java中的话，那么总数开销会以几何形式增长，而现在我们可以通过以下方式调用：&lt;/p></description></item><item><title>java程序员如何规划自己的职业生涯</title><link>https://pangyd.com/post/99-java/</link><pubDate>Mon, 11 Sep 2017 19:30:20 +0800</pubDate><guid>https://pangyd.com/post/99-java/</guid><description>&lt;p>IT行业越来越繁荣、成熟，随着移动互联网、java编程语言的普及，愈发有很多java程序员进入这个行业，java程序员面临自身能力提升时更多关注的是自身的硬实力，即技术功底、专业知识; java程序员如何规划自己的职业生涯，软技能的提升与硬实力同等重要，有时可能更为重要。&lt;/p>&lt;p>1. 专注力&lt;/p>&lt;p>在日常工作和生活中，我们可能时常被打断，特别是当我们进行编码工作时被打断后，往往需要半个小时或更长时间来找回当时的工作状态。挑选时间片段专注于单一任务的方法，可以帮助程序员从这种状态中脱离出来。当然自己也要学会建立防火墙，专注时间内的其它可能打扰自己的因素需要及时避免，如即时通信软件、微信等。专注于完成单一任务，不要期望并行任务完成得很好，经常性的被打断会造成专注力的缺失，对于程序员来说缺乏专注力是致命的。&lt;/p>&lt;p>￼&lt;/p>&lt;p>2. 时间管理&lt;/p>&lt;p>总是感觉一天什么都还没有做，时间就溜走了。分享一个我对于时间利用方式的理解，即碎片事情用碎片时间，完整事情用成块时间。怎么理解呢?我们日常有很多的碎片事情，如查邮件、刷微博、看微信等，这样的事情就可以利用碎片时间来做，例如上厕所、等公交、坐地铁等;例如完成产品某一功能便是完整事情，需要利用成块的非打扰时间来完成，这样才会将时间利用好。&lt;/p>&lt;p>3. 对自己负责&lt;/p>&lt;p>不论是提升工作效率，还是学习新的技能，都是在给自己积累经验和知识，在进行工作输出时，需要对自己所完成的内容进行负责，使其达到最好的状态和输出标准，这一切的努力都是在对自己负责。&lt;/p>&lt;p>4. 有效努力工作&lt;/p>&lt;p>加班是程序员跑不掉的话题，需要思考的是，在自己的工作内容里面，完成时到底用了多少有效时间，千万不要只是看上去很努力，做了很多无用功或是浪费了时间。当然，如果你公司文化是由加班多少来决定晋升和绩效的，要么玩这个游戏，要么离开这样的公司。&lt;/p>&lt;p>￼&lt;/p></description></item><item><title>如何拥有一个属于自己的网站</title><link>https://pangyd.com/post/89/</link><pubDate>Sun, 03 Sep 2017 09:49:38 +0800</pubDate><guid>https://pangyd.com/post/89/</guid><description>&lt;p>&lt;b>&lt;i>前言&lt;/i>&lt;/b>&lt;/p>&lt;p>网站顾名思义就是网上的一个站点 &amp;nbsp;而你打开的页面就是一个站点上的一个一个文件。那就有人问了，我有一台可以上网的计算机可不可以当站点用呢？答案是肯定的 通俗点来讲就跟你平时串门一样 这家门开着你就可以进去 &amp;nbsp; 但是现在计算机日益发展强大 家家都是用路由器 而且网络运营商分给每台计算机的IP都不是固定的 一般都是动态分配的 所以大多数人你即使开启了你电脑的服务器 因为端口 和IP地址问题 &amp;nbsp;也是很麻烦的 &amp;nbsp;因为你电脑连的路由器 你电脑上的ip地址是内网地址也就是192.168.1.1这样的 &amp;nbsp;再说就是你电脑不是专业的服务器 不能满足一个服务器的基本需求 &amp;nbsp;。说了这么多 也就是自己的电脑当服务器是基本上不可取的！&lt;/p>&lt;p>那还有什么办法可以创建一个网站呢？&lt;/p>&lt;p>整体的步骤是：&lt;/p>&lt;p>1：选择服务器和虚拟空间&lt;/p>&lt;p>2：选择合适的域名&lt;/p>&lt;p>3：网站备案&lt;/p>&lt;p>4：上传网页文件&lt;/p>&lt;p>5：完成&lt;/p>&lt;p>&lt;b>&lt;i>1：选择服务器和虚拟空间&lt;/i>&lt;/b>&lt;/p>&lt;p>现在基本上中大型企业基本上都是有自己的服务器 &amp;nbsp;而小企业和个人一般都是采用第三方的虚拟主机和云服务器来进行建站 比如阿里云 腾讯云 百度云等 还有免费的网眼等 &amp;nbsp;我高三的时候用过网眼的免费空间搭建过聊天机器人 &amp;nbsp;心得就是：免费的就是不好用&lt;img src="https://pangyd.com/uploads/2017/08/44ddb3ea33fe01f7.gif" alt="[微笑]">&amp;nbsp; &amp;nbsp;现在好了 &amp;nbsp;什么免费的虚拟空间和云服务器都便宜了 &amp;nbsp;建站的人也多了 &amp;nbsp;。&lt;/p>&lt;p>我接下来主要是讲阿里云虚拟主机建站过程：&lt;/p>&lt;p>闲话少说 &amp;nbsp;现在阿里云有个活动就是新用户可以免费领取半年的云服务器（ps：基本上抢不到），也有个6元一年的虚拟主机活动 &amp;nbsp;建议有一些建站知识的可以买云服务器 &amp;nbsp;没有建站知识的那就买虚拟主机吧！毕竟你买了云服务器也不知道咋用，那些连虚拟主机也不会用的就自己问度娘把，实在不会就点这里：&lt;a target="_blank" href="https://wpa.qq.com/msgrd?v=3&amp;uin=2500918234&amp;site=qq&amp;menu=yes">热心的博主&lt;/a>（ps：&lt;a target="_self" href="https://wanwang.aliyun.com/hosting/free?spm=5176.8112568.483655.5.tuqHEt">这里放上阿里云虚拟主机的6元活动&lt;/a>）&amp;nbsp;&lt;/p>&lt;p>&lt;b>&lt;i>2：选择合适的域名&lt;/i>&lt;/b>&lt;/p>&lt;p>接下来，买完主机了 你就需要你一个自己域名（ps：这里放上：&lt;a target="_blank" href="https://pangyd.com/post/5/">个人博客应该选怎样的域名&lt;/a>）&amp;nbsp;&lt;/p>&lt;p>&lt;b>&lt;i>3：网站备案&lt;/i>&lt;/b>&lt;/p>&lt;p>接下来就是域名备案：&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/515b164f020bb08b.png" alt="UXCL~[%`GY]${~@(IB7XUHA.png">&lt;br>&lt;/p>&lt;p>&lt;br>&lt;/p>&lt;p>2&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/a08638e72abe25eb.png" alt="@%(LF{Z]C7$$P8$@6{AE`TC.png">&lt;br>&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/0f5a016588300e20.png" alt="YBK}1NQRU8MVHIS(B94I]Y8.png">&lt;br>&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/5493d5199098f684.png" alt="G{Z6EW1D]NQLMYN{RAGQ8XE.png">&lt;br>&lt;/p>&lt;p>&lt;img src="https://pangyd.com/uploads/2017/09/e853617ca79bbad1.png" alt="PK(3H{P}~]LYL_[N4XVH9]1.png">&lt;br>&lt;/p>&lt;p>一切跟着流程走 然后提交审核就可以 如果有什么不对 客服会给你打电话 让你修改 基本上就一个工作日时间就可以通过初审&lt;/p>&lt;p>通过初审后 会让你用幕布拍照（ps:第一次备案的还需要买幕布 一般三天左右幕布才会给邮过来 &amp;nbsp;但是有个好消息就是博主这里有块幕布 离的近的小伙伴可以来找我 ）&lt;/p>&lt;p>然后你得下载一个审核单 &amp;nbsp;然后去打印社打印出来 标准就是楼下博主的标准&lt;/p></description></item><item><title>转载自【数据猿】从硬件到软件，人工智能如何驱动文娱行业变革？</title><link>https://pangyd.com/post/25/</link><pubDate>Mon, 31 Jul 2017 15:36:32 +0800</pubDate><guid>https://pangyd.com/post/25/</guid><description>&lt;p>&lt;br>&lt;/p>&lt;p style="text-align: justify">&lt;span>7月28日，“达观数据开放日”首站上海站的活动在上海浦东软件园爱酷空间举行。本次活动围绕“人工智能助力文娱行业智能运营”的主题，喜马拉雅FM副总裁李海波、创业邦趋势学院院长张雷、梨视频副总裁徐戌雄和达观数据COO冯佳妮等出席了本次活动，从人工智能与文娱行业的内容运营的结合点切入，对整个行业的发展趋势以及与人工智能的结合进行了深入的探讨。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>在“开放日”的演讲环节中，嘉宾们从音频、媒体和短视频这三个不同的角度切入，分享了各自领域的运营经验。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>喜马拉雅FM总裁李海波首先介绍了喜马拉雅在人工智能方面所进行的努力。早在2015年4月，喜马拉雅FM就宣布与科大讯飞达成合作，二者联合推出语音开放平台，直接对接漫步者等各类硬件研发和生产企业，还将围绕互联网与移动互联网、车联网、智能硬件等诸多领域展开全面合作。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>当时，科大讯飞与喜马拉雅FM都已各自研发了一些产品，如：科大讯飞的小柔、小智智能语音机器人，喜马拉雅FM的听书宝，与“童话大王”郑渊洁合作的舒克故事机等。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>而在上个月，喜马拉雅FM刚刚正式发布了国内第一款全内容AI音箱“小雅”，并基于此提供一套基于语音交互的场景解决方案，这意味着巨头齐集的国内人工智能领域迎来了首个内容型选手。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>对于这款人工智能音响，李海波的逻辑是这样的：目前所有的智能音响到今天为止都在智能两个字上做文章，试图去控制电视，做遥控，去开窗帘，帮你调空调的温度，让机器人扫地。但小雅音响的核心是以内容为出发，打通和优化用户体验。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>值得注意的是，喜马拉雅FM推出的这款人工智能音响并没有与之前合作过的科大讯飞联合推出，而是和小米音响一样使用了猎户星空提供的语义分析服务。对于这一点，李海波则表示，小雅拥有内容方面的优势。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>创业邦趋势学院院长张雷则从前沿科技媒体的角度提出了对人工智能未来发展的预期。站在第三波人工智能浪潮的基础上，张雷对整个行业的前沿发展趋势进行了总结。“人工智能发展有三大要素，一个是算法，一个是数据，还有一个是计算。”有了算法和数据，又能有一个稳定、高效满足海量数据吞吐的计算解决方案，人工智能的快速发展是必然的趋势。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>从文娱行业的角度来说，张雷认为未来将是多业态、多渠道共生的局面。对用户进行个性化的推荐建模，并为其推送个性化的精准IP将成为发展的趋势，多类型的定制化产品提供将成为主流。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>梨视频副总裁徐戌雄站在短视频平台的角度探讨了视频行业运营的思路：“短视频作为新兴的传递方式，其成功的一大关键在于能够提供适合现代用户的浏览节奏的内容。梨视频主打资讯短视频的概念，迅速得到了大量关注。”&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>徐戌雄从多个角度探讨了梨视频在短视频行业的整个布局策略，包括通过聚集个人拍客和机构拍客，全方位把握全球范围内的资讯热点，并确保视频质量；也包括应用人工智能技术，通过配置个性化推荐系统等功能，打造智能的用户理解和内容推送机制。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>达观数据COO冯佳妮以直播为切入点，分享了达观数据作为文本技术服务商，为文娱行业客户提供人工智能服务的实际案例。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>“通过接入人工智能服务，用户的内容点击率可以上升足足3倍，搜索无结果率下降可达90%，对用户体验和用户转化率都会有巨大提升。”冯佳妮介绍的实打实的案例和指标提升给大家带来非常直观的感受。从数据上可以明显地看到，个性化推荐对于文娱行业精准运营的提升效果是传统方法所完全无法比拟的。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>作为国内领先的人工智能企业，达观数据在文字自动化处理领域拥有深厚的技术积累，达观的个性化推荐、垂直搜索引擎以及文本挖掘等服务受到广大企业认可，在娱乐、传媒、电商、金融、科技等行业得到广泛应用。&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>&lt;br>&lt;/span>&lt;/p>&lt;p style="text-align: justify">&lt;span>随着人工智能技术的快速发展，越来越多传统行业也开始享受到了人工智能带来的红利。在文化娱乐行业也是如此，只有不断升级技术，琢磨产品，才能跟得上时代发展的步伐。&lt;/span>&lt;/p></description></item></channel></rss>