稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

Metaprogramming in Python

元编程是一种编写生成或者处理程序代码的技术,Python语言也支持元编程,今天就来好好的学习一下。我们先了解元编程的概念,然后再深入探讨在Python中如何实现元编程。

Deploying Python Applications

一个软件项目通常的开发流程包括创建,开发,打包和发布,不同为类型的项目具体过程可能不太一样,比如像Web项目,最后一般不叫发布而是叫做部署,并且像动态语言类的项目一般不会有打包过程。但总的来说,这几个流程确实是任何一个软件开发过程中必做的事情。今天就来学习一下如何部署Python应用程序,也就是除了项目开发写代码以外的一些必须做的事情。

Python GUI Made Easy

大Python是很好用的一门编程语言,默认情况下我们都当成脚本来使用,都是通过命令行方式来运行我们写的程序。但有些时候GUI还是很方便使用的,脚本和命令行最适合的场景是批量任务运行和自动化,但是如果交互性质的任务较多时,脚本就特别不方便,这个时候GUI就相当的方便。因此,学习一下GUI相关方面的框架,还是相当有必要的。

Python Runtime Environment

Python是非常流行的通用编程语言,因其简洁和易读而广受喜爱,近年来由于深度学习的崛起更是让Python登顶为最受欢迎的编程语言。虽然已使用Python写了一些程序,但总是缺少深度的理解,加之前段时间因为升级pip导致一些依赖的module无法正常工作,于是要停下来把Python到底是如何工作的了解清楚。

Hashing Hash and HashMap

哈希表(HashMap)或者叫做散列表,是非常常用的一种二维的键值对式的数据结构,用以非常高效的解决查询问题的。 其核心是Hashing,这是把一个对象映射到一个索引的过程,实现hashing的函数通常称为hash函数或者叫散列函数,基于hashing实现的数据结构称作HashMap,或者叫做散列表。

TopK问题,堆和快速选择

TopK问题是很常见的一种问题,它的描述是从一个数据集或者序列中取出前k大(或者前k小),或者说找出第k大(第k小)。最为典型的就是 题215. 数组中的第K个最大元素。解决TopK需要的是最基础的数据结构和算法,不但可以考查编码基本功,更能考查思维能力。

DFS in Depth

前面一篇文章讲解了DFS的基本概念和基础的使用方法,但不够深入,DFS的应用是很广泛的,不论是枚举状态或者路径,还是递归,其本质上都是DFS。今天就来好好的理解一下DFS的内在本质,并学会在树,在图以及在回溯中的应用。

悼念耗子叔

惊闻耗子叔突然辞世,悲伤不已。仍活跃在一线的技术大神,前几天仍在社交网络上活跃的大牛,突然就这么走了,犹如一首高亢激昂的交响乐曲,嘎然而止,亦如波涛奔涌的大江,瞬间冰封,不免让人心痛,亦会唏嘘感慨生命的短暂。

Android Scoped Storage Puzzles

安卓对于文件存储这块,其实是相当混乱的,在早期的版本中对存储甚至是没有所谓的管理的,有多种方法可以操作文件存储,比如通过Java原生的方式(File/InputStream/OutputStream),以及通过ContentProvider的方式(openFile/openOutputStream)。文件的路径也是相当混乱的,有公共存储区域,App的沙盒,外部存储中的App沙盒,但其实整个文件系统中的文件都是可读的,除了系统目录,其他应用的沙盒(内部和外部)以外也都是可写的。这就造成了,安卓的文件系统特别的混乱,加之应用使用不规范,对存储造成极大的滥用,外部存储空间产生大量的垃圾文件,应用卸载后仍然存在,这也催生了一系列的清理软件。