在命令行中使用wget下载Google Drive中的文件

有时候在没有图形界面的情况下想要下载Google Drive中的文件非常麻烦,虽然有一些软件可以实现,但是如果只是偶尔使用就显得很繁琐

一行命令:

其中 FILEID 是Google Drive共享文件的ID,可以通过右键->获取共享链接得到, FILENAME 随意

 

在 Google Cloud 上使用 GPU 进行深度学习加速

深度学习需要用到GPU的并行计算能力进行加速,由于不方便安装台式机,计划用云GPU进行,以国内某知名云为例:

CPU: E5 4vCPU,内存: 30G,GPU: NVIDIA P100,SSD: 40G,硅谷节点(无国内节点),包月5460.80元

而Google Cloud Compute Engine提供以小时计费的GPU计算单元(关机后不收费),相似配置需要894.06美元/月(约6000元),如果按小时计费,约1.225美元/小时,所以如果是学习为目的的话Google Cloud还是非常划算的。

1.创建Google Compute Engine

选择Compute Engine -> VM instances -> Create Instance

选择适合你的CPU、GPU、内存配置,可以先选低一点,后期随时可以调,GPU也是,我选择了如下配置: 继续阅读“在 Google Cloud 上使用 GPU 进行深度学习加速”

Windows Ubuntu 双系统安装注意事项

  1. 最好安装在同一块硬盘上,方便引导
  2. 不能是动态磁盘
  3. 一定要分配/boot分区,200MB就行。不设置的话会导致只有一个系统能起来。(困扰了我半天
  4. 开机黑屏只显示grub之类的是引导坏了,不用着急重装系统。能进BIOS就没事儿,进Live CD联网安装boot-repair修复一下就可以
  5. 修改引导在Windows下用EasyBCD,Linux选NeoSmart Linux,这个都会。Ubuntu下安装Grub Customer自定义一下,免得按两次引导。
  6. 安装nvidia驱动的时候要把nouveau禁用,参考:https://askubuntu.com/questions/841876/how-to-disable-nouveau-kernel-driver
  7. 各种配置都弄好之后安装systemback,创建还原点和iso文件,出问题了直接回滚or重装

阿里巴巴C++研发实习生面试挂经

前言:菜就是菜 ——节选自《节选》

内推,先完善信息,没有笔试环节,接着进行评测(心理素质之类的),1个多小时后收到了电面邀请的电话(有点快),约定第二天晚上十点后进行电面。第二天提醒安装钉钉,重新约定了电面时间。

正式电面:打开阿里的在线编辑器和在线视频,都无法获取摄像头,于是改为电话面试。

上来是一道编程题,手动实现memmove()函数,主要是考察内存和指针,要注意内存重叠问题(这块儿卡了一下)。然后叙述实现思路(根据内存地址高低不同来选择正向还是反向复制)

用没用过STL,用过哪些,vector和list有什么不同,分别是如何实现的(数组,双向链表),vector内存是如何增长的(1.5或2倍,其实答一个就行),为什么是这个数字(编译器实现不同,vs是1.5,gcc是2)。map如何实现的(红黑树),查询时间复杂度(lgn)。allocator有什么用(知道是分配内存用的,但是只用过默认的,没答上来)

菱形继承问题,虚函数怎么实现(虚函数表)

继续阅读“阿里巴巴C++研发实习生面试挂经”

解决WordPress下“Error establishing a database connection”问题(配置php-fpm)

0.

我站出现“Error establishing a database connection”这个问题很久了,一直也没有解决,每次重启一下就好了,一开始以为是JetPack插件的锅,因为他需要在一个网页授权什么东西,由于是wordpress出品,于是就信任了,后来不断出现这个error,推测是Jetpack的问题,遂卸载,结果症状好了一点,但还是出error,只不过频率低了。

1. Debug过程

首先Google了一下这个error,大多数都是说MySQL用户名和密码不对的,确认一遍用户名密码。

其中有一条说尝试登陆一下MySQL看一下error日志,结果登不上,继续Google MySQL登不上的问题,手动起动无效,lnmp下重启无效,尝试重启大法(整机),结果又能登陆了,可以初步确定问题出在MySQL。

后来又搜到说是不是内存不够了,键入 free -m 查看内存使用情况,发现剩余内存很多(刚重启过),暂停。

过了几天又出现error,在查看内存使用,剩余只有几十MB,当然跑不起来(但是为什么是MySQL先挂掉了而不是别的服务),搜了一招增大swap的方法缓解内存不足,实践后没什么明显效果,见上一篇文章 。

继续探索,这次使用了 top 命令查看资源使用情况,跟Windows下的任务管理器差不多,按 shift+P 按CPU使用排序,按 shift+M 按内存使用排序,如图:

其中:

PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进 程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称

终于破案了!可以看到世界上最好的语言的14个进程吃掉了70%+的内存!

可能世界上最好的语言只有世界上最好的服务器才配得上吧

2. 配置优化

既然定位到了问题就好办了,Google一下,修改配置文件php-fpm.conf,把 pm = dynamic 改为 pm = ondemand ,然后重启php就好了,重新看一下内存使用情况:

剩余内存从42MB增到了633MB,立竿见影~


参考:https://segmentfault.com/a/1190000010413463