老程序员解Bug的通用套路!

千万不要当程序员面说有bug!对于新手程序员而言,在复杂代码中找BUG是一个难点。下面我们总结下老从程序员解Bug的通用套路,希望对大家有帮助。

1. IDE调试

根据项目特点和语言特点选择一个最合适的IDE,由于本人是做C++出身,最喜欢用的莫过于Visual Studio 了,这款微软开发的IDE,自从研发出来,就被称为宇宙第一编译器,能编译调试C/C++、C#、F#、Python、JavaScript、Qt、iOS等多种语言的开发。目前的VS2017还原生支持远程跨平台的软件开发,这无疑给我们常年奋战在linux/Unix黑匣子开发环境,使用G++调试的C/C++程序猿们带来了福音。

老程序员解Bug的通用套路!

2. 重构大法

如果你发现无论如何也找不到BUG,而且代码只是复杂,本身不是很长,直接重写代码吧!重构大法是解决爆炸性bug的绝招。

Android OpenGL ES 开发(十): 通过GLES20与着色器交互

1. 获取着色器程序内成员变量的id(句柄、指针)

GLES20.glGetAttribLocation方法:获取着色器程序中,指定为attribute类型变量的id。
GLES20.glGetUniformLocation方法:获取着色器程序中,指定为uniform类型变量的id。

如:

// 获取指向着色器中aPosition的index
maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");
// 获取指向着色器中uMVPMatrix的index
muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");

2. 向着色器传递数据

使用上一节获取的指向着色器相应数据成员的各个id,就能将我们自己定义的顶点数据、颜色数据等等各种数据传递到着色器当中了。

一文解密无人机物流

当今社会正由后工业时代向智能时代迈进,科技发展一日千里,信息技术、人工智能、无人机与物流行业的发展互相交织和促进。自动化和智能化正在一步步地渗透到人们的工作和生活当中,例如工厂的全自动流水线,仓库的自动分拣和搬运系统,再如智能搜索、智能语音处理及应答平台等等。

优秀工程师的6个特质,你有几个?

优秀的工程师需要具有良好的沟通能力、创造力、以及很强的逻辑性。伟大的工程师是稀有物种,他们可能对每个人的日常生活有着难以置信的影响力。对一些人来说,想要成为伟大的工程师的想法看起来是无法实现、难以企及的遥远目标。以下6种特质将帮助您成为一名优秀的工程师。

1. 与生俱来的好奇心

高清语音技术(WBS)及其在手机和蓝牙耳机中的实现

高清语音也被称为宽带语音,是一种能为蜂窝网络、移动电话和无线耳机传输高清、自然语音质量的音频技术。与传统的窄带电话相比,高清语音很大程度上提高了语音质量,减少了听觉负担。

通信产业链上的所有网络和设备都需支持高清语音才能体现出该技术的优点。到2011年6月为止,18个国家运营的20种蜂窝网络,以及33家领先的手机品牌都已支持高清语音。通过部署自适应多速率宽带(AMR-WB)语音编码,GSM, WCDMA(UMTS)和LTE蜂窝网络中已经引入了高清语音。此外, 通过使用改良的子带编码(mSBC)语音编解码技术,无线蓝牙耳机也开始支持高清语音,将免提通话与高语音质量结合在了一起。

高清语音的优点同样可以在现有网络中体现出来。随着窄带网络和设备向高清语音过渡,一种名为带宽扩展(BWE)的语音处理技术可以用来在接收终端设备上模拟类似于高清语音的通话质量,为不支持高清语音的设备提供了一个折中的解决方案。

从窄带到高清语音

Java编程代码性能优化总结

如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。

代码优化的目标是:
  •   减小代码的体积
  •   提高代码运行的效率

代码优化细节:

自主移动机器人同时定位与地图创建(SLAM)方法概述

1. 引言:

机器人的研究越来越多的得到关注和投入,随着计算机技术和人工智能的发展,智能自主移动机器人成为机器人领域的一个重要研究方向和研究热点。移动机器人的定位和地图创建是自主移动机器人领域的热点研究问题。对于已知环境中的机器人自主定位和已知机器人位置的地图创建已经有了一些实用的解决方法。然而在很多环境中机器人不能利用全局定位系统进行定位,而且事先获取机器人工作环境的地图很困难,甚至是不可能的。这时机器人需要在自身位置不确定的条件下,在完全未知环境中创建地图,同时利用地图进行自主定位和导航。这就是移动机器人的同时定位与地图创建(SLAM) 问题,最先是由SmithSelf 和Cheeseman在1988年提出来的,被认为是实现真正全自主移动机器人的关键。

自动驾驶的核心技术是什么?

用4级或5级来定义自动驾驶很难有一个明确的标准,自动驾驶也不应该搞得很复杂。自动驾驶实际包含三个问题:一是我在哪?二是我要去哪?三是如何去?能完整解决这三个问题就是真正的自动驾驶。所以特斯拉升级后的8000美元的Autopilot 2.0只有部分线控功能,不能算真正的自动驾驶。福特、百度和谷歌这些公司做的才是真正的自动驾驶,远在特斯拉之上,两者云泥之差,天壤之别。

第一个问题是定位,自动驾驶需要的是厘米级定位。

第二个问题是路径规划,自动驾驶的路径规划第一层是点到点的非时间相关性拓扑路径规划;第二层是实时的毫秒级避障规划;第三层是将规划分解为纵向(加速度)和横向(角速度)规划。

第三个问题是车辆执行机构执行纵向和横向规划,也就是线控系统。

目前自动驾驶的技术基本上都源自机器人,自动驾驶可以看做是轮式机器人加一个舒适的沙发。机器人系统中定位和路径规划是一个问题,没有定位,就无法规划路径。厘米级实时定位是目前自动驾驶最大的挑战之一。

安卓9.0来了:8月20日正式发布

Google上周发布了Android P的最后一个Beta测试版,更新日志几乎是一片空白,恰恰说明新系统已经全面成熟和稳定,只待发布。

现在,曝料大神Evan Blass发布了一张2018年8月份的日历表,几乎一片空白,只在20号那天有一个绿色的字母“P”。

这几乎是在明示,Android P将在8月20日发布,安卓9.0终于要修成正果了。

手游开发者利用APP外工具提高沉浸度的5种方法

原作者:Helen Burda
译者:Willow Wu

随着用户获取成本的飞速攀升,提高用户沉浸度对手游开发者来说就变得尤为重要。

据Bain & Company的研究显示,留住老用户所花费资金比争取新用户所需的少6~7倍,这就意味着玩家下载APP/游戏之后,如何让他们多次回到游戏中是一个非常关键的问题。