10 ka__ka__

尚未进行身份认证

C/C++/Go程序员; 喜欢乒乓、游泳和看电影; 平时喜欢看知乎和豆瓣;

等级
TA的排名 1w+

macOS安装PyTorch跑MNIST数据集

知乎上看到一个问题很有意思:TensorFlow 真的要被 PyTorch 比下去了吗? ,大致看了下下面的回答,站队PyTorch确实不少。自己就尝试跑一下PyTorch,感受一下:安装Python3,直接去官网下载macOS版本的安装包即可;配置pip,国内可以配置阿里云的源,加快访问速度;配置如下:➜ ~ cat ~/.pip/pip.conf[global]index-...

2020-04-30 23:44:10

Python的模块搜索路径和包管理

Python模块搜索路径Python模块搜索路径的官方文档:https://docs.python.org/3/tutorial/modules.html#the-module-search-pathWhen a module named spam is imported, the interpreter first searches for a built-in module with ...

2020-03-04 23:31:45

Golang笔记:包管理机制

Go语言使用包组织源代码,并实现命名空间的管理。Go不强制包名和所在目录同名,但好的工程实践建议同名。包定义不包括目录路径,但引用一般是相对GOPATH的全路径引用,所以包一般都会放在公司或个人的域名目录下。包引用Go语言自带标准库的包在$GOROOT/src下面,可直接引用;自定义的包和第三方包需要放在$GOPATH/src下面才能被引用;引用了包,但是代码中没有用到,编译器会报错。...

2020-03-01 17:54:35

关于时间管理:计划要粗,记录要细

大部分时间管理的误区,就是把时间管理搞的太复杂了。耗费了大量的精力在事无巨细的规划上,太多精细的计划还往往最容易受到冲击,无法很好的执行并给人带来了负反馈。在樊登读书看过一个例子很有同感:不要太大力气去做整理,因为整理这件事情本身不创造价值。有这么一个实验:给大学生做时间管理的实验。把学生成绩差不多的大学生分成三组:第一组不做事件管理;第二组只做一个月以内的计划;第三组做每天的计划。后来的结果...

2020-02-23 21:46:21

vim和source insight使用对比

从2019年开始,相对高频的使用了vim,之前一直是source insight用的多。为什么突然vim用的多了呢?因为某些外部因素,公司开始逐步不让用source insight了,再加上代码库的编译都是在Linux机器上,直接在SSH到机器上修改编译比较方便。先说说Source Insight的使用体验。对于C/C++项目,Source Insight看代码非常的方便。找文件、找符号、找定义...

2020-02-10 22:48:27

关于程序员写文档和发帖子的一些看法

年前,部门做知识管理,让每个人把自己负责的模块的一些文档补齐一下,输出一些代码导读或者问题定位之类的帖子。完后,看同事们发的帖子,果然每个人都有不同的行文逻辑和写作风格,有的读起来清晰易懂逻辑顺畅,有的就比较发散很意识流,有的甚至都不知所云。写好文章其实也很重要的,既是对已有工作和知识的总结帮助自己内化,也是对外输出技术影响力的重要手段,甚至都是一些公司的考核KPI了。那么,一篇好的文档或者帖子需...

2020-01-31 22:45:17

Linux C/C++ 程序员毕业工作四年多来的感想

时间过得真快,从2015年毕业参加工作,到现在2019年底,已经工作了四年多,自己也到了而立之年。从此以后,作为国内一名程序员,年龄就开始慢慢变为减分项,一想到整个行业和国内一线大厂都特么这个尿性真是蛋疼。不过还好在初期收入不错,可以早些完成自己人生的原始积累也算欣慰了些,也正所谓:有得必有失,有失必有得。审视现在的自己:对技术已经没有那么狂热,学习新东西变得聚焦,甚至有点儿功利,少了那么一点儿...

2019-12-31 23:56:46

Linux shell脚本引用类似include其他脚本的方法

Shell 脚本规模大了总会比较难维护,但是很多时候又得必须用。适当的拆分文件的方法挺好,Shell脚本没有include或者import机制,查了资料就是用source命令来解决。一个小例子:test.sh#!/bin/bashsource add.shadd 1 2add.sh#!/bin/bashecho "this is $0"add() { echo $...

2019-11-29 22:15:45

DFS递归回溯求排列组合的C实现

深度优先搜索DFS本身很好理解,即按照一定顺序递归遍历一个图,但是如何把所有的满足要求的遍历方式给求出来,这里就需要结合回溯backtrace了。在LeetCode中,回溯标签下的很多题目都是求排列组合的,这也算是一类经典类型的题目了。C/C++写的多人都会有个特点:写代码的时候脑子里都是内存布局,栈帧结构,以及代码执行时各个对象的生命周期等等,写的多了某种程度可以对这些东西做到可视化了都。理解...

2019-10-25 08:02:22

从"阿里P8程序员征婚"事件看如何正确的审视自己

2019年9月下旬的一个网络热点知乎链接:如何看待「86年男生阿里 p8 年薪近两百万,就想找一个90后独生女」一事 ?附一下我比较欣赏的@Cat Chen的回答:感觉是偏科状元想要匹配全科优才生,既不会说配不上,但也不至于强大到任意通吃,所以就看缘分咯。我把他定义为偏科状元,因为他在描述自己时说的主要就是一个维度:钱。无论是房子车子,最终都是钱。父母退休不用担心,那主要也是钱,虽然钱够...

2019-09-29 00:11:26

Linux C pthread多线程,join和detach

Linux C多线程使用,有一个注意点需要注意,新启动的子线程一定要在主线程join,或者本身被设置为detach,否则会引起资源泄露,如每个线程都有自己的运行stack,内核中的task_stuct数据结够等。正如,父子进程中的子进程退出没有被父进程join就会变成僵尸进程一样。一个例子,最终会导致资源耗尽 pthread_create 返回 11. 这个错误是 EAGAIN 的意思就是操作系...

2019-09-18 22:56:25

x64 ASM 常用汇编指令

语法习惯立即数,$ 开头寄存器,% 开头取地址里面的值,偏移量(%寄存器)// 除了 lea 取地址指令)外,lea就是取地址 load effecive address整形操作通用后缀,后缀 [b w l q 1 2 4 8] byte word l… quadruple, 表示多少字节浮点指令还有三个 [s d t 4 8 16] single double extended (修饰精

2019-08-28 23:51:59

小练习 - C语言实现一个极简通用vector

C语言库比较少,很大的原因就是没有泛型,也没有class。但是C语言作为一个较为底层的系统级语言,操纵内存还是很灵活的。模仿C++实现一个泛型vector,可以使用void*,使用的时候强转对应类型,或者使用宏来封装一些操作。这里实现一个极简的vector,拥有增删查功能,存储的元素放在连续内存中,扩容时1.5倍增长。没有加锁,非线程安全。这个可以在控制结构体里添加。原理很简单,内存不够了,ma...

2019-08-21 22:11:36

VIM使用小技巧

VIM的优势如果做Linux C/C++开发,经常ssh到Linux服务器编辑各种文件,那么熟练使用VIM绝对可以提高工作效率。VIM的高效体现在多模式,可以很方便快速的对文件进行各种编辑修改,而这恰恰是在软件开发中经常遇到的场景。VIM流行这么多年,很多操作都是经过多年沉淀下来的高效操作,熟练的VIM操作可以让编辑与思维尽可能同步,快速的反复修改,把代码写成想要的样子。并且,在Linux上很...

2019-07-29 23:51:43

Linux C/C++ 共享库so的搜索路径和顺序

共享库的搜索共享库的搜索出了系统默认路径外,还可以通过下面方法指定。首先通过环境变量指定:环境变量LIBRARY_PATH 编译期查找动态链接库路径, 导出给Makefile或者在Makefile开头指定;LD_LIBRARY_PATH 运行期查找动态链接库的路径,会在系统默认路径之前查找;还可以通过GCC参数指定:编写Makefile一个好的习惯是先-L指定路...

2019-06-22 19:26:38

编程中的心流模式flow

周末看电影,接触到了心流这个概念,挺有意思。了解心流理论,可以指导我们进入一个更为高效预约的工作状态。电影《社交网络》里程序员写代码出现了两次"wired in", 一次是肖恩帕克去参观扎克伯格的创业团队,其中的一名程序员没有回应肖恩的问候;另一次就是安德鲁怒找扎克伯格询问关于股票稀释的问题;quora上有个专门的问题来: https://www.quora.com/What-does-it...

2019-05-27 01:13:15

C语言实现极简递归下降JSON parser解析器

JSON字符串解析利用递归下降非常容易实现。本文实现了一个不支持数组,数字解析只支持正数long类型,只支持ASCII字符集的极简JSON解析器,未实现的功能后面也比较容易扩展。

2019-04-28 23:47:39

网络安全:非对称加密RSA算法

非对称加密RSA算法对极大整数做因数分解的难度决定了RSA算法的可靠性。加密RSA加密过程简单描述如下:选两个大质数 p,qp, qp,q,计算n=p⋅qn=p\cdot qn=p⋅q;随机选一个整数eee,满足eee和(p−1)(q−1)(p-1)(q-1)(p−1)(q−1) 互质;数据xxx加密后为yyy,那么y=xemod &ThinSp...

2019-03-31 20:48:03

Golang笔记:iota常量生成器

Golang的常量表达式值在编译期计算,iota是Golang提供的常量生成器,用于生成一组以相似规则初始化的常量。一个例子:const ( Zero = iota // 0 First // 1 Second // 2 Hi = 0 // 0, 被打断后,后续值不变直到iota显示回复 Four ...

2019-02-28 22:45:39

Linux C信号编程:接管段错误信号SIGSEGV打印调用栈

有时候,线上环境没有开启coredump,这时把进程复位时的调用栈打印出来就非常有利于问题定位了。怎么做呢?也很简单,我们在程序中接管SGISEGV信号,在信号处理函数打印调用栈信息即可。信号处理可以看:UNIX环境高级编程内核机制可以看:Linux内核源代码情景分析这两本书虽老了点,但写的确实很不错,相关系统API使用可以配合可能Linux man手册。接管段错误信号后,在信号处理函数中...

2019-02-20 22:34:33

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。