今天下午去了电信专场,四川分公司一度火爆非凡,一个几十平米的工作室挤满了人,成电的四川人还是很多的,都想往这里留。递交简历后,就是漫长的等待,然后分配到了面试,说是Hr争取来的免笔试的一个预面试。
面试过程挺轻松的,就让自我介绍,兴趣爱好,还有家庭背景等等,我中途还懵了一下,他让我随便介绍,我说介绍项目可以吗,后面我又带过从待教研室到运动,感觉既然没提就别说,说了就应该从项目说起,这是今天面试的一个失误吧。
剩下的就是通知我等待终面。总的来说,等待面试的时候还是挺紧张的,感觉肚子痛,其实真的没必要,后面真的可以不用多想,不要自己给自己添加压力,多总结多积累,心态平和,无论好坏还是要合理利用时间,高效率地准备积累,继续踏实夯实基础合理扎实准备。
求1+2+3+...+n的非循环代码方法
题目简述
今天在牛客网上做到这样一道题,让求1+2+3+…n,但是不能用到循环,if,switch case等判断语句,问该怎么做?
思路
最基本的方法肯定是循环,那么寻找与循环相对应的,那就是递归,而递归总会判断n处于最开端的状态,考虑使用&&逻辑判断语句的短路操作来执行类似if的效果:
还有另外一种做法:使用TMP,即template元编程,但这样需要在编译时就确定好待求的变量
or
最早的递归可以在运行时再传n值。
ubuntu16.04挂起长时间后再恢复无法联网
续之前的问题
之前曾经遇到过一次,当时的方法修改了某个系统文件参数,还是不行,最后猜测是使用了rfkill软阻塞了无线网卡的启动,但今天尝试后,发现并不是软阻塞的问题。因为只显示蓝牙的情况,根本不显示无线网卡的情况。
使用ifconfig -a 也找不到无线网卡,iwconfig也没有发现无线网卡。
操作:使用sudo ifconfig wlp3s0 up去打开无线网卡,显示: wlp3s0: 获取接口标志时出错: 没有那个设备。
$:service networking restart:Job for networking.service failed because the control process exited with error code. See “systemctl status networking.service” and “journalctl -xe” for details.
$:systemctl status networking.service : networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor prese
Drop-In: /run/systemd/generator/networking.service.d
└─50-insserv.conf-$network.conf
Active: failed (Result: exit-code) since 日 2017-08-27 15:57:23 CST; 19s ago
Docs: man:interfaces(5)
Process: 13959 ExecStart=/sbin/ifup -a –read-environment (code=exited, status
Process: 13954 ExecStartPre=/bin/sh -c [ “$CONFIGURE_INTERFACES” != “no” ] &&
Main PID: 13959 (code=exited, status=1/FAILURE)
8月 27 15:57:23 jjlinux ifup[13959]: than a configuration issue please read the s
8月 27 15:5:q7:23 jjlinux ifup[13959]: bugs on either our web page at www.isc.org o
8月 27 15:57:23 jjlinux ifup[13959]: before submitting a bug. These pages explai
8月 27 15:57:23 jjlinux ifup[13959]: process and the information we find helpful
8月 27 15:57:23 jjlinux ifup[13959]: exiting.
8月 27 15:57:23 jjlinux ifup[13959]: Failed to bring up eth0.
8月 27 15:57:23 jjlinux systemd[1]: networking.service: Main process exited, code
8月 27 15:57:23 jjlinux systemd[1]: Failed to start Raise network interfaces.
8月 27 15:57:23 jjlinux systemd[1]: networking.service: Unit entered failed state
8月 27 15:57:23 jjlinux systemd[1]: networking.service: Failed with result ‘exit
$:vi /etc/network/interfaces:
interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
没有wlp3s0网卡。
猜测:是不是手动添加可修复这个问题?
好像确实是无线网卡被关闭,完全打不开,使用了sudo network-manager restart,使用了service networking restart,仍然没用。
使用iwconfig查看时发现wlp3s0网卡是ESSID:off/any,Access Point:Not-Associated等等。
还使用了ifconfig wlp3s0 up,仍然不行,这个是无线网卡,但是发现了一些信息,提示的是SIOCSIFFLAGS:不被允许的操作。感觉像是系统直接禁止了这个无线的服务。后面在开启服务时又提示的是systemctl无法操作。
解决
貌似使用wicd替换network-manager服务好像可以解决这个问题,因为ubuntu下的network-manager服务管理网络的,很容易出问题。但是原因呢?到底是为什么网卡都启用不了了?
网上还说可以在/etc/modprobe.d/blacklist.conf文件最后加入 blacklist acer-wmi,不知道什么意思。
从这延伸的话:是不是可能某个模块被禁用了?
暂时的解决
删除了network-manager管理网络,使用wicd来管理。
怎么开机自动开启wicd?
总结
今日总结
今天白天主要学习了数据库的两章,一是触发器,二是事务管理。
触发器
触发器主要用于三种操作:UPDATE、DELETE、INSERT,分别有BEFORE和AFTE两种状态,加起来就是6个触发器情况,其意义是在执行前三种某一个操作之前或之后会自动触发触发器中的语句处理。
问题
那么底层是怎么实现的?怎么实现在执行操作之前就能获取某个操作待处理的行且进行触发操作?
事务管理
事务管理主要用于当执行多个操作时,特别是不同表相关联的操作时,如果其中一步失败,后面是很难进行修补的,而事务管理则通过设定逻辑块定位,如果执行多个操作中某一步失败,那么直接回退到最初始的状态。
问题
如何编写语句,达成中间某个步骤失败,自动回退到之前状态?
晚上又使用了markdown-resume生成我的markdown转pdf的简历
但是实际生成的简历都是最简洁的pdf样式,在技能方面和项目经历方面这样看着特别单薄,这种简洁的风格是适合真正技术扎实的简历的,有内容,简洁而突出,所以我距离这个方向还有一段距离,需要继续努力,将自己感兴趣的比如网络后台和大数据方向的开源项目和需要做的技术如毕设的图像处理方面相结合,再去尝试做一些开发和理解一些基础原理。
堆和堆排序
二叉堆
二叉堆是通过递归定义的:首先二叉堆是一个完全二叉树或近似完全二叉树(这里近似完全二叉树是什么东东?)
- 父节点键值大于或等于(or小于或等于)子节点键值;
- 左右子树仍然是二叉堆。
上浮和下沉
下沉
对于根节点而言,一般是最大或最小的节点,那么如果一个不满足这个条件的序列,就需要通过一系列步骤来建立堆,下沉是其中之一。
删除节点时,首先将最后的节点覆盖根节点,然后通过下沉操作确定合适的位置,完成删除操作。上浮
后续插入的节点,通过上浮的操作来确定其位置。
堆化数组
将所有树枝点进行一次下沉操作,其实也可以对所有叶子节点执行上浮操作,但是对两个同双亲的叶子节点执行上浮相当于对一个树枝点进行下沉,所以选择下沉操作了。
另外,对所有树枝点进行下沉操作,可以理解为每一次都是对已经调整好的左右二叉堆添加一个根节点再进行下沉,具有递归的思想定义,但是使用叶子节点进行上浮操作的话,没有一个合理的递归思想的定义来理解,虽然也可以这么做,也应该是对的。
堆排序
每次将根节点与最后一个数交换,然后去掉最后一个节点,重新更新二叉堆,这样重复N-1次,就得到了有序的数组。
特点
最大堆得到的序列是递增的,最小堆得到的序列是递减的。
算法复杂度
建立堆时N/2次下沉操作,每次复杂度log(N),排序时经过N-1次交换,但每次恢复堆需要log(N),所以总的复杂度仍然是N * log(N)。
使用markdown写简历
首先使用markdown写出一份有稳扎稳打的简历,按照其基本格式语法写出即可,简洁而方便,但是关键问题在于需要将markdown文件转换成pdf或者html格式,大婶们已经提供了充足的工具供使用。
法一:使用there4/markdown-resume模板
我目前采用的就是这个工具,首先需要下载仓库:
然后安装php环境,我之前安装时一直没有执行这一步,导致报错:
需要执行(debian环境):
接着对于写好的markdown
输出pfd:
输出html:
./bin/md2resume html examples/source/sample.md examples/output/
法二:mwhite/resume 但是经过我测试,本来的项目可以转英文不能转中文,修改后的项目仍然出错,怎么办?
法三:tinylab/latex-resume
法二、法三均参考见网上博客
还有一个貌似自由度挺高挺简单的:geekcompany/DeerResume
这是在线markdown简历工具
另外,还有一些简历的markdown模板
总结:虽然都是转换pdf,但是不同的工具在格式上稍有不同,可选择合适的进行使用。
hexo d 提交时遇到的问题
今天提交hexo时,显示如下错误:
可能的方法
经过网上查询,有的说是git版本太新,导致不能识别,但是我之前都使用过并且提交成功了的,难道后面更新了?我不记得我更新了啊。
据说安装稍微旧一点的git应该可以解决,我没有这样做。
正确的方法
后面又发现一个方法:
将hexo配置文件_config.yml中deploy下面的repository更改为
https://用户名:密码@github.com/pythonsoft/test.Git然后就可以了。(应该这样走的是ssh路线,我之前用的是http方式传输)
注意:用户名不是登陆账号名, 是github的用户名,如我的用户名就是jjgame12。
来源:w20101310的博客
main函数中argc,argv参数的含义
main(int argc, char* argv[])
argc是命令行总的参数个数,包含执行文件名称
argv是具体的参数,其中argv[0]是执行文件名称,后面依次是用户输入的参数
例如:
命令行执行:./main a b c
输出是:
参数个数:4
分别是:
./main
a
b
c
vmware使用加速
关闭VMWare的虚拟内存功能
当启动 VMWare 虚拟机后,在虚拟机文件夹下会生成一个 .vmem 的文件,该文件大小与给虚拟机分配的内存大小相同,并且在关闭虚拟机后该文件会消失。这就是VMWare 的虚拟内存文件。
它就是在当你的真实内存比较小的时候,节省内存用的。但这也带来一个问题就是:当给虚拟机分配的内存比较大,且在虚拟机中使用的内存也比较多时,就会导致系统(虚拟机和物理机器)非常的慢。
如果你的物理机器的内存比较大,就可以完全禁止该功能。
关闭的办法:
1. 选择编辑虚拟机----选项----选中“Disable memory page trimming”;
2. 在虚拟机所在的文件夹,找到“虚拟机名称.vmx”文件,用文本编辑器打开,新建一行,添加该配置项:mainMem.useNamedFile="FALSE",保存退出。
hexo使用进阶
添加个人信息
添加图片
添加链接
设置头部图片和背景图片
问题:图片大小不能自定义
标签字体和颜色设置
增加标签页面
如何添加访问量
如何添加评论
如何添加动态背景
使用crossover添加windows版本qq
添加对32位库的支持
123sudo dpkg --add-architecture i386sudo apt-get updatesudo apt-get install lib32z1 lib32ncurses5安装免费版crossover(老版本):~/下载/LinuxWine(不知道老版本是否长期能用,更新后是否收费?)
12345crossover-15_15.0.3-1_all.debcrossover-15_15.0.3-1_all-free.debdeepin-crossover-helper_1.0deepin0_all.deb安装下载好的qq
参考:倚竹幽簧的博客