自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白鼠的学习足迹

君子松竹梅,小人吃喝睡;开心过一生,雅俗共欣赏!

  • 博客(20)
  • 收藏
  • 关注

原创 再次理解Python描述符

都说Python是优雅的语言,在我看来Python的语法和实现给人一种自然而然的感觉,比如容器的继承机制,迭代器和生成器,上下文管理,以及各种双下划线开头的特殊方法。了解Python的设计之后,就会觉得本该是这个样子,毫无违和感。唯一例外的是描述符(Descriptor),这玩意对Python而言可是举足轻重,但是从一般用户的角度去看就有点生硬,不知道为什么会存在这样的东西,特别是关于访问优先级,...

2020-04-18 22:49:34 284

原创 理解Javascript的原型

过去对Javascript语言的认识就是嵌入浏览器的脚本,而且设计得很糟糕。众所周知当初由于时间紧迫,Javascript的作者完全是赶鸭子上架,因此也留下了许多不合理之处。不管怎么说,V8,node这一系列生态成熟以后,JS的地位早就令人刮目相看了,But,终究还是不太喜欢呐,虽说JS是【世界上最被误解的语言】。最近由于工作中要用到React框架,又随机补充了一些JS的知识。长期使用面向对象...

2020-03-22 21:01:11 170

原创 小型的开发团队也可以方便的配置工作环境

在大公司小公司都呆过,两者内部的IT环境差别非常大。对于老牌的大公司,不管要干什么大大小小的事情都有相应的内部网站,不仅是申请代码或主机的访问权限这种和实际工作相关的,其他事情比如员工保险,参与公益活动都会有对应的内部站点。何况各个部门的各个团队都有自己的Wiki,有时候光是分类这些书签就挺头痛。而小团队,特别是创业团队可能就是几个人每人一台电脑,顶多有台公用的服务器大家都可以访问,就开始工作了。...

2019-06-15 20:15:39 350

原创 对Python协程的一点理解

很早以前了解到协程(或者纤程),只有个硬生生的概念,进程可以分成多个线程,而线程又可以分为多个协程,不仅上下文切换的代价更小,而且协程运行在用户态可以避免不必要的系统调用。最近对协程的了解加深了一些。首先要知道,如果协程跑在单一线程里,系统地并行性能不会提高,并不会利用多核的威力,但是对并发的支持却可以大大提升。因为现实中的计算机,从寄存器到缓存,再到内存和磁盘以及网络,延时是越来越大的,因此...

2019-04-20 22:24:46 186

原创 未来也许不一定只存在几种底层公链

有种说法是,任何领域发展到最后都会呈现比较明显的头部效应,基本是两三家公司在竞争。可以举出很多例子,老大老二几乎瓜分了市场,老三兴许分得一杯羹,后面几乎就没有了,比如做CPU和芯片组的Intel/AMD/威盛,做桌面操作系统的Windows/Mac/Linux,做手机系统的苹果/安卓/WindowPhone。区块链公有链领域的发展,一开始集中在底层公链身上,要解决性能/效率/安全等等各方面的问题,...

2018-06-22 23:54:00 1987

原创 不断重构:关于一个简单的爬虫小程序

关于代码重构,我的经验是不用一开始就尽善尽美,那样不仅耽误进度,而且有可能开始就弄得太复杂,要关注的细节太多。在不停的完善程序功能的过程中,一些明显需要优化的地方,可以顺便改起来,也不要等到全部功能完成之后再重构,那样也会感觉一团乱麻不好下手,很容易改着改着就引入bug了。重构无处不在,哪怕是写一些很小的程序,一样有提升的空间。最近写了个简单的爬虫,原本的目的是想给自己省时间。因为经常去某体育论坛...

2018-02-10 19:30:15 602

转载 统计分析/机器学习吐血整理最强指南(第二版)

AI的热潮滚滚袭来,集中爆发的领域则是机器学习特别是深度学习,不了解一下似乎跟不上时代。对于没有基础的人来说,需要找一条渐进的学习路线。IT人都不会太闲,但也要抽出时间来学习,要不然也许不知不觉中就发现自己和外界的热点完全不搭边了。看了网上很多人介绍的学习方法,以下这篇文章算是图文并茂。个人感觉可以先从基本的数学入手,不求证明,起码至少要知道是怎么回事,然后从一些简单的应用入门,不至于太枯燥,接着...

2017-11-12 22:12:17 2276

转载 值得学习的C/C++开源项目 & C++资源大全

分为两部分:一是值得阅读源码的C/C++开源项目,对于学习编程和增长经验很有帮助;二是C++资源大全,囊括了各类有质量的Library。这篇文章在网络上流传甚广无法指明出处,转载过来只为方便自己随时查看。

2017-08-07 02:50:00 3904

原创 IPv4寿命延长:NAT地址转换

我还在上大学那会儿就说要推广IPv6技术了,但直到今天大多数教科书关于网络的部分重点仍然在IPv4上面。按理说IPv4仅能提供43亿左右的地址,全球人均一个都不够分,何况现在物联网时代有多少五花八门的设备需要IP地址。既然IPv4能苟延残喘至今,关于内网通信的问题还是有必要搞清的,毕竟内部IP有诸多限制,典型的例子,比如开发P2P程序要如何穿透?把相关的知识整理了一下。

2017-07-30 02:19:14 708

原创 用Python的函数式编程特性解释Y Combinator(仿JavaScript版)

函数式编程曾经火过一阵,但是一直没有在工业领域流行起来,其实函数式编程的思想早就融入工业语言,常见的JavaScript,Python,Ruby都支持函数式编程特性,甚至C++11标准也引入了匿名函数。过去曾看到过介绍【lambda算子】的一系列文章,当时有种大开眼界的感觉,原来计算能以这种方式表达,可惜没有进一步学习FP的零零总总。这一向又偶然瞥见一篇文章用JavaScript模拟Y组合子,心想着既然最近的工作都在用Python,干脆依葫芦画瓢用Py也来实现一遍吧。

2017-07-20 16:40:55 1548

转载 C++中的类模板详细讲述

C++之所以让人头大,除了语言细节颇多,涉及内存管理挖了许多坑以外,还因为融合了各种编程模型使其变得更加臃肿和复杂。事无巨细之下只能多多借助于参考资料,毕竟有些东西不常去用也不会熟稔,正所谓好记性不如烂笔头,于是转载了这篇关于C++类模版的讲述,自己也顺便跟着复习了一遍。

2017-07-10 20:15:54 303

原创 布满障碍物的矩阵中连接两点所需的最小直线数目

假设有一个矩阵,四个边都是堵住的,矩阵内部有若干障碍物,现在有两个点,用若干条直线连接两个点,且直接不能穿越障碍物,那么至少需要几条直线呢?这很类似连连看游戏中判断是否相连的问题,可以利用广度优先搜索求解。

2017-07-08 19:11:02 1426

原创 一个创建迷宫并寻找通道的小程序

在学习递归时,在迷宫中寻找路径的问题经常会被当成例子,类似的还有汉诺塔。所有的递归程序都可以改用栈的方式求解,事实上系统执行递归函数也不过就是频繁的入栈和出栈,当然,也可能导致栈溢出的问题。直接借助“栈”这种数据结构来实现程序其实会更好点,可以动态分配内存,只是递归程序看上去更简洁精致,两个重要步骤:1.找出递推关系式,2.找到递归终止条件。接下来试着创建一个迷宫并找出通道。

2017-07-08 18:40:20 2473 2

原创 利用类型萃取(Traits)限制函数模版具体化所使用的类型

函数模版被具体化时,只允许特定类型的参数,否则在编译阶段就报错,可以保证函数被正确使用,让可能的错误提前曝光。引入<type_traits>标准头文件并运用类型萃取可以成功限制函数模版被具体化时所使用的类型。

2017-03-28 17:15:38 364

原创 为模版类增添友元函数的几种方法

《Effective C++ 3rd Edition》中的条款46提到了“需要类型转换时请为模版定义非成员函数”,其中涉及到模版类和友元函数,梳理了一下相关知识,为模版类添加的友元函数分为三类:非模板友元,约束(bound)模板友元,非约束(undound)模板友元。

2017-03-26 01:31:53 523

原创 继承体系下虚函数表的初始化

构造函数和析构函数里面可以调用虚函数吗?写个例子测试一下就知道这并没什么问题,程序也许可能按预期正常执行,但是语法上通过的东西,未必真的就make sense。《深度探索C++对象模型》一书中分析了对象的创建过程,括构造虚函数表的时机。

2017-03-20 16:27:25 1163

原创 验证C++多继承下的虚函数表的布局

在深度探索C++对象模型一书第四章中,探讨了虚函数表的构建方式,用代码验证书中给出的模型。

2017-03-19 03:04:17 406

原创 临时文章

#include "stdafx.h"const double goods[] = {0.5, 0.2, 0.33, 0.28, 0.88, 0.01, 0.02, 0.05, 0.77, 0.62};const double maxLoad = 1.0;int numBoxes = sizeof(goods) / sizeof (goods[0]);int nMinBoxes = nu...

2010-02-05 01:20:00 516

原创 C语言宏的一些常规用法小结

《C标准库》一书中作者用到“隐藏宏”进行多次宏替换,将一个整型的内置宏转化为可输出的普通字符串。在一些库函数的头文件里经常看到类似的东西,例如:#define SOMETHING(x) _SOMETHING(x)#define _SOMETHING(x) ANOTHERTHING(x),本文总结了一些C语言宏的惯用法。

2009-12-28 19:23:00 834

原创 开始尝试着写博客

本人比较慵懒。曾经博客在大江南北流行的时候,我也开过一个,记录一堆零零碎碎的事情,开博的那个网站不够稳定,后来又转移到了网易。由于慵懒的缘故,文章更新得挺慢,因为生活是如此平淡无奇,或许是我缺乏发现闪光的眼睛。今天突然想着要开始写技术类博客,虽然我知道自己不是什么技术高手,即没有丰厚的知识经验,也没有独创的智慧。其实像我这样的平常人,更需要激励自己,千万别觉得微不足道的东西就没什么好写的,哪怕谈不

2009-12-21 19:16:00 468

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除