- 博客(20)
- 收藏
- 关注
原创 由JD客服改变引发的思考
在京东商订购了一台冰箱,想预约一下送货时间,于是打了客服电话。让我吃惊的是,1.现在的服务选择直接用语音描述,而不是之前像其他公司客服电话一样,需要手动选择0,选择1。。。刚开始时候还是有点不适应。但是这波操作之后,感觉这样还是比较方便。语音说之后,他能给出比较好的结果。2.在服务等待期间,没有盲音,而是放一段音乐。这2点变化,给我感觉很好。从技术上看,有这种改变得益于人工智能的发展。从服务上来看,是在最求最好的用户体验。希望以后有更智能,更好的发展和用户体验。企业都在不停的追求改变和发展,那么
2020-09-29 09:42:41 194
原创 奋斗和发力
在华为时,听到这样一个故事。以为外国工作人员问中午领导,什么是奋斗?由于语言的差异,这位领导解释不了,于是就请假任总。任总跟他说,你就跟人家外国人说,在华为奋斗就是,你干的越多,获得的就越多。这样,外国人就懂了。现在一些小公司,事多,钱少,离家远。可以老板还一直push,不停的说,加油,发力。这样的口号对于喜欢老实干活的人来说,是干不长久的。...
2020-09-28 08:35:01 172
原创 浅析芯片中握手设计
握手,我们熟悉的动作了,虽然动作简单,但是握手里面有好多学问和细节。今天我们看的不是日常交往中的握手,而是说这芯片设计中的握手处理。在芯片中模块之间会经常用到握手处理,这样各自模块可以处理自己的事,提高整体的效率。一般握手用两个信号线,比如A模块和B模块握手。A发出一个valid信号,B模块有ready信号。A准备好了valid会有效,B准备好了B的ready会有效。在A的valid和B的ready同时有效时,完成握手。在设计中要特别注意A的valid不能依赖B的ready,同样B的ready不能依
2020-09-25 08:13:50 915
原创 svn revert批量撤回本地修改操作
revert的作用是撤回本地文件的修改,有时候我们修改的文件过多,又想给恢复到之前,就需要批量操作了。使用如下:svn revert --depth=infinity file可以对file目录下的所有文件做revert操作。
2020-09-23 09:04:02 2323
原创 python查看包的安装路径和版本信息
查看某安装包的安装路径和相关信息。比如想看Theano的信息,在terminal中输入pip show Theano则显示:
2020-09-22 14:39:51 518
原创 svn查看本地和库上文件是否有修改
查看本地文件是否有变动使用:svn st如果在文件显示‘M’,表示本地有修改。如果什么不显示,表示没有修改。查看库上文件是否有变动使用:svn st -qu如果文件前面有‘*’,表示库上有更新文件,在修改本地文件前,要先更新本地文件。...
2020-09-22 10:24:50 4451
原创 svn比较本地文件和库上指定版本的差别
比对本地文件和库上指定版本文件的差别,方法如下:svn diff -r 版本号 文件名如果想把比对的结果打印到文本中方法如下:svn diff -r 版本号 文件名 > diff.log则不会在屏幕上打印比对的结果,而是把比对的结果输入到diff.log中。...
2020-09-22 09:28:47 3903
原创 python获取键盘输入函数input
用input函数可以获取键盘的输入,这样可以动态的改变一个变量的值。比如:a = input("Enter a number\n")运行结果如下:
2020-09-21 19:46:19 1376
原创 linux中find的使用
最简单的使用是 find file -name file_name,就会从file及其子目录中查找名字为file_name的文件。创作中心
2020-09-15 09:04:29 81
原创 python中read,readline和readlines实例比较
read()全部取出,放到字符串里。 readline()方法会将内存空间里的内容一次性只读一行,放到一个字符串里。 readlines()方法会将内存空间里的内容一次性全部取出来,放到一个列表里。 下面我们实例一下:我们用下面程序看一下他们的类型。运行结果如下:从结果我看可以看出,fid.read()和fid.readline()是一个字符串。fid.readlines()是一个列表。在看看他们读取一次的内容。test.txt的内如如下,里面有4...
2020-09-15 08:54:01 709
原创 python os.path常用的方法
下面列出了os.path常用的方法,主要是对文件的操作。比如获取文件的名字,获取文件的路径,把文件路径组合,判断文件是否存在,判断文件是否为目录等等。os.path.basename()去掉目录路径,返回文件名。os.path.dirname()去掉文件名,返回目录路径。os.path.join()将分离的各部分组合成一个路径名。os.path.getsize()返回文件大小。os.path.exists()判断文件是否存在。os.path.isabs()判读
2020-09-15 08:18:44 209 1
原创 python os模块中常见的方法和使用
os.remove()删除文件,比如os.remove('file'),file必须是文件。os.rename()重命名文件。os.rename("file","file1"),会把文件file改为file1。os.walk()生成目录树下的所有文件名。os.chdir():改变目录os.mkdir/makedirs:创建目录/多层目录os.rmdir/removedirs:删除目录/多层目录os.listdir():列出指定目录的文件os.getcwd():取得当前
2020-09-14 21:21:36 282
原创 linux ls按着文件数字大小排列
如下文件:想按着a后面的数字大小排列,如果直接用ls -l a*,会显示如下:这没有达到效果,用ls -lv a*,显示如下:达到想要的效果。
2020-09-14 20:34:59 3549
原创 python使用linux命令复制文件示例
在linux系统中,我们经常批量复制一些文件,如果一个个手动复制,会非常慢。下面写了一个python脚本来批量复制文件。主要利用python的 os包,复制32个文件,代码如下:第1行,导入os包第4行,新复制的文件夹名称第5行,判断改文件夹是否存在,当改文件夹不存在时候,才建一个第7行,要复制的文件夹第8行,执行复制...
2020-09-14 13:39:49 2441
原创 I2C接口简介和时序
简介I2C,Inter-Integrated Circuit,是两根线,SDA(数据)和SCL(时钟),也是一种同步传输协议。主机在发送开始信号之后,先发送7个比特的地址位和1个比特的读写位,每个从机有自己的I2C地址,当发现该条指令是发给自己的时候,拉低SDA线(即回复ACK信号),然后主机发送或接收数据,完成传输。传输完成之后,主机发送停止位,完成该次传输。时序(1) master发起始信号后,总线上所有的slave开始等待主机紧接下来的地址广播。总线上每个设备的地址都是唯一的,..
2020-09-11 09:29:02 1808
原创 python读取文件句柄的两种方法
方法一:使用fid = open("./file.txt","r")这样打开文件在读取文件操作后,在 程序的后面需要加上fid.close()方法二:使用with open("./file.txt","r") as fid: xxxxx(具体文件操作)这样打开文件后不用再关闭文件句柄了,使用起来比较方便。...
2020-09-10 07:55:18 1677
原创 I2C slave的两种设计思路
I2C slave设计思路有两种:1.直接使用SCL作为时钟信号,采集SDL;2.使用快速时钟采样SDA和SCL信号。第一种方法设计比较简洁,但是没有第二种设计方法可靠。
2020-09-09 08:56:11 1806 4
原创 快速理解APB接口特点和使用方式
APB简介APB(Advanced Peripheral Bus),外围总线,是一种常见的总线协议。APB属于AMBA 3 协议系列,它提供了一个低功耗的接口, 并降低了接口的复杂性。 APB接口用在低带宽和不需要高性能总线的外围设备上。 APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输至少耗用两个周期。APB可以与AMBA高级高性能总线(AHB-Lite) 和AMBA 高级可扩展接口 (AXI)连接。APB主要用于低带宽的周边外设之间的连接,它
2020-09-07 15:03:22 10828
原创 matlab中字符串拼接方法
我们经常遇到字符串拼接,下面介绍三种字符串拼接的方法:1.使用中括号[]如:a = 'string_1';b = 'string_2';c = [a,b]运行结果如下:2.使用sprintf我用常用fprintf可以格式化的数据打印,那sprintf的作用是将数据格式化为字符串。如:a = 'string_1';b = 'string_2';d = sprintf('%s%s',a,b)输入:3.使用strcat函数strcat是水平串联字符串.
2020-09-04 09:57:39 4244
原创 matlab矩阵分割示例二
用mat2cell函数可以把矩阵分割为想要的形状,在上一篇博客里面,我们已经做了一些介绍,指定每个快的大小。下面介绍用矩阵表示每个块的大小。如下程序,M用rand函数产生了30行10列的随机矩阵。A是用ones产生了1行5列,元素为6的矩阵。B是一个1行2列的函数,两个元素分别为2和8。使用mat2cell把M行上分5块,列上分2块。每块的大小就是A和B中的内容决定的。运行上面的代码,结果如下:可以看到原来的矩阵被分为了10块,一半是6行2列,一半是6行8列。...
2020-09-03 08:28:46 3387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人