分类:编程

计算机(网络)的文章分为了三部分:

  • 计算机科学 ,收集所有计算机科学理论相关的文章,包括算法、复杂性等。更偏重于理论基础。
  • 编程相关 ,收集了所有与写代码相关的文章,更偏重于工程实践。
  • IT 技术 ,其他相关文章,更偏重于产品。

此为第二部分。

常用标签:

Matlab 26 Excel 20 VBA 14 数据库 11 C++ 11 办公自动化 10 编程和算法效率 8 我贡献的源代码 5 Linux 5 内存检查 3

  1. 编程 » C++, 内存检查, Linux
    获取程序占用的内存量,是一个诡异的需求。但程序写多了,有时候还真需要,尤其是代码运行出现问题的时候。
  2. 编程 » Linux, rsync
    在同步一个超大文件时,发现 rsync 并没有按照预期的同步一个文件。而使用 md5sum 检验文件内容时,原始文件和目标文件的内容并不一样。
  3. 出现的一个场景是将函数指针用 void
  4. armadillo 是一个线性代数 C++库,封装了 blaslapack ,提供更直观的接口。
  5. 编程 » Linux, Vim, 文件编码
    由于 UNICODE 的优势,目前推荐都用 UTF-8 进行编码。
  6. 编程 » GIT
    有时候不小心把一些大文件 commit 到了本地版本库,但往网络版本库同步时,因为文件过大被拒绝。如果在上传前,本地有多次提交,此时再在当前版本里删除这些大文件还不够,还需要把历史记录全删掉。效果要跟从来没提交过这些文件一样。
  7. 编程 » GIT
    git 经常出现类似于 HEAD detached at origin/development 的错误提示。这是因为当前的 HEAD 没有位于任何一个分支上的缘故。
  8. 一个烦心事情是 pypyodbc 查询到的中文结果都显示为问号乱码,下面的代码可以解决这个问题。但会导致无法正常获取查询结果的字段名称( curser.description 结果异常)。由于修改了 sys 全局设置,目前不清楚是否还有其它副作用。
  9. boost 是除 std 外最常用的 C++库,覆盖很多常用操作。目前最新的版本是 1.59.0
  10. 编程 » C++, 算法
    一个短小、高效的 C++函数,用来判断指定日期是星期几:
  11. 编程 » C++, C++11
    花括号初始化是 C++11 引入的一种初始化方法。
  12. 编程 » C++, GCC, 编译链接
    LD 在链接生成目标文件时,会从左到有扫描输入的依赖库,当依赖库之间也有依赖关系时,必须将「依赖别人的库」放在「被别人依赖的库」的前面。否则会链接失败!失败的症状有:
  13. 最近老遇到一个奇怪的问题。在 VS 2013 编译时,爆出很多警告:
  14. 编程 » C++, 编译错误
    在 gcc 中,存在继承关系的模版类,子类无法直接访问父类的成员,即使该成员是 protectedpublic
  15. 编程 » C++
    C++的浮点数转整数有四种方法,直接类型转换、round、floor、ceil。其效果如下表:
  16. C++内存检查和性能分析工具 valgrind 里介绍了 valgrind 的安装,以及用于效率分析 profiler 工具。valgrind 最本来的功能是内存检查。这篇文章做简单的介绍。
  17. 一个好用的 C++性能分析工具需满足几个条件:
  18. Python 数据分析工具 pandas 中以 DataFrame 和 Series 作为主要的数据结构。
  19. 由于 instantclick 不会重新运行位于 head 部分的 JavaScript 代码,而很多工具性软件,比如 MathJax、百度统计、Google Analytics、Google Code Prettify 等软件都是直接将 JS 文件插入到 head 区域。这导致这些工具在 instantclick 点击后失效,需要重新配置。
  20. 以前总是被教育说注释写得越详细越好,我自己写代码的时候也恨不得将每一步都用自然语言给它翻译一遍,如果没写注释就觉得不专业。后来看到健硕写的 notes ,再加上最近做一个东西,也有一些感受。
  21. 编程 » SQL
    现在 Access 用的人应该不多了,本来我以为我也不可能用这玩意儿,但最近在用 VBA 通过 SQL 处理数据时,发现它的语法是 Access 的语法。平时对 SQL Server 语法相对熟悉一些。下文总结了 Access 和 SQL Server 语法的差异。
  22. 编程 » Matlab, 并行计算
    我们知道 Matlab 不支持多重 parfor 循环。下面代码会出错:
  23. 编程 » Matlab
    在写 Matlab 程序时,函数的命名方式让人头疼,很难保证刚写的一个函数名在很久以前被用过,成为隐藏的一颗炸弹。
  24. 编程 » Matlab, 并行计算
    parfor 适用于
  25. 编程 » Matlab
    Matlab 在启动时会自动运行脚本 startup.m 。在这个脚本里可以自动修改当前目录,修改显示方式等等。比如
  26. 编程 » Excel, lotus, VBA
    公司使用 Lotus ,我每天都通过 Excel 编写 VBA 代码自动调用 Lotus 发送邮件,发现一个奇怪的现象。一般我们通过下面的 VBA 代码指定邮件收件人:
  27. 编程 » Matlab
    第一步, which 函数可用来获取 Matlab 函数的全路径(包含路径和文件名)。
  28. 更新一下之前写的 Excel 的数据库类 ,将其改成函数的形式,调用更简单(省却了生成类实例的步骤)。现在这个代码在工作中用了一年多,已经比较健壮。若有问题,请留言指出或与我联系。
  29. 编程 » Excel, 数据库
    在前面的文章里,我已经提到 Excel 数据本身可以当做一张 SQL 查询的数据表 ,并在 Excel 内进行数据库运算操作。数据库查询函数可以用我之前写的 Excel 数据库操作函数类 。我们可以用以下方式
  30. 之前对普通 Excel 文件,我都保存为默认的 xlsx 格式,带 vba 的保存为 xlsm 格式。最近从同事那里见到一个高大上的 excel 文件格式: xlsb。我学习了一下,觉得甚为强大,在此推荐一下。
  31. 编程 » Excel
    在编辑 Excel 文件时经常遇到的一个问题是,我这边用得好好地,换台机器就变了个样,或者根本用不了。下面是我在日常工作中总结的一些避免这些情况的小技巧。
  32. 编程 » PowerPoint, 输入法
    最近 PowerPoint 打字速度慢就困扰着我。打字以后出现文字很慢,基本上我在键盘上狂敲十几个字,过了几秒钟才会慢慢的出来。长一点的段落我还需要先在别的地方写好,然后复制粘贴到 PPT。
  33. 键盘流(指尽量使用键盘,少动用鼠标,尤其不要在鼠标和键盘之间来回切换) 是我追求的目标。我工作中用的最多的软件是 Excel ,写代码写的最多的是 Excel/VBA。用得多了自然比较关注工作效率,所以我在 Excel 键盘流上略有心得,这里给大家分享一下。网上有很全的快捷键列表,但那不是我想写的,因为太多记不下来不实用。这里只列举一下我在实际工作中的的确确总是在用的,为自己方便,也共享给大伙们。
  34. 编程 » Matlab, 字体
    Matlab 默认字体为 Monospaced ,这是种逻辑字体,它在不同语言和操作系统上映射为不同的物理字体。一般在中文系统下, Monospaced 字体被映射到宋体。它很丑,我想换掉它。
  35. 编程 » VBA, Excel
    如果不提供错误处理方法, VBA 在出错时会停留在出错之处。Excel/VBA 提供 On Error 关键词来处理程序运行过程中的错误,具体有下面两种用法:
  36. 编程 » Excel
    Excel 中可设置每个单元格显示数字和文本的格式:
  37. 编程 » Java, Matlab
    Matlab 2008b 才开始引入 containers.Map ,这是 Matlab 唯一的数据结构(这里的数据结构是指自带一定逻辑性的数据结构,不包括普通数据类型)。如果要有其它,比如 Queue、Set 等数据结构,只能自己编写一个。File Exchange 上有不少人做过这个工作,我也写过 Queue、List、Vector 的 Matlab 对象 。不过 Matlad 的面向对象编程效率极低,这种方法只能用于不太注重效率的场合。解决这个问题的另外一个方法是使用 Java 对象。
  38. 平时电视看得极少。有时候看看电影或电视剧,都是从网上下载或者看在线视频。俺家里的歌华有线电视欠费快两个月,一直没有续费,但没觉得生活中少了些什么,可见电视对我来说没什么用处。
  39. 2014-03-25 更新:我已经将该类修改成函数形式,并增加新功能,参见 更新 Excel 的数据库查询函数库
  40. 以前发过一个 编辑和发送 Outlook 邮件的 Excel/VBA 脚本 。最近公司不让用 Outlook ,强制使用 IBM Lotus Notes ,我又写了一个编辑和发送 Lotus 邮件的 VBA 脚本。
  41. Excel 多表合并和查询是一个应用很广泛的问题。下面是一个简单的例子,我们需要从两张数据表里,得出每个行业的股票波动率平均值。第一个数据表保存了股票和行业的对应关系,有两列,第一列为股票名,第二列为每只股票对应的行业。第二张表保存了各个股票在各个交易日的收盘价和前收盘价,有四列,第一列是股票名,第二列为交易日,第三列和第四列分别为股票在这个交易日的前收盘价和收盘价。
  42. 编程 » Excel
    此篇为学习笔记。
  43. 编程 » Excel
    最近看到一个比较有趣的问题, Excel 中以下表达式代表什么含义:
  44. 编程 » Shell, VBA
    某些时候,我们需要在 Excel 中调用命令行或者 Bash 脚本, VBA 可以通过 Shell 函数很方便地做到这一点。以下用 ipconfig /all 来举例,这条命令行语句用来获得机器的网路配置信息,包括 IP、网关等信息。它可以替换成任何一个 bash 脚本和命令行代码。
  45. 我写了一个期权到期收益结构的 Excel 模板。欢迎大家无聊的时候使用。
  46. 编程 » Matlab, 编译器
    现在比较新的电脑基本上都是 64 位的 CPU , Matlab 也是 64 位的版本,但 64 位的 Matlab 没有自带编译器,需另行安装编译器。下面是方法之一:
  47. 编程 » Excel, VBA
    无意中发现一个 Excel VBA 对待参数的一个"不正常"现象。这种处理方式可能无意中导致程序结果错误,而且你很难发现你的错误所在:
  48. 编程 » Excel
    香港这边没有 WIND ,部门的彭博也不在我的机器上,为了取个股票价格数据都得跑来跑去。一怒之下,我写了一个 Excel 的函数,用来获取行情数据。
  49. 编程 » Excel, VBA
    Excel VBA 出错时给出的错误信息极少,需要充分利用各种工具来进行调试。
  50. 编程 » Matlab
    读者来信:
  51. 编程 » bug, Matlab
    Matlab 内置的 runstoredprocedure 函数,用来运行同时有输入和输出参数的存储过程:
  52. 编程 » Matlab, 代码准则
    我所在部门也不是 IT 部门,职位也不是开发职位,但平时工作还是需要大量处理和分析数据、计算和开发各种指标等,还是需要写很多程序,语言以 VBA 和 Matlab。但同时,部门里像着我这种写程序的人并不多,别人并不看我的代码而只关心我提交的结果(说实话,大多数时候即便我写错了也不会有人知道),工作环境也不像专业的 IT 公司或部门,有严格的流程控制和工作平台。我这里没有版本控制、没有自动测试环境、没有代码格式和注释要求,也不需要去 Linux 下干活。我相信国内金融行业有不少人与我处于同样的状态。
  53. 编程 » Matlab
    写了一个统计代码量的函数,函数已 上传到 Matlab Central File Exchange下载地址 ,使用方法:
  54. Excel 的数据透视表是一个很好用的功能,我写了一个 Matlab 版本,在处理上和 Excel 的透视表差不多,还差一个 filter 而已。
  55. 没有人敢说 Matlab 的帮助文件不够详细和全面,但 Matlab 里面的确存在一些功能和函数,你很难找到它的帮助文档。下面列举一些,以后碰到其它的也会放到这里来:
  56. 上次说起 遇到两个 Matlab 的效率问题 ,还剩下 save , load 没说。不过这个问题的结论挺简单的,就是在 save 的时候尽量指定使用-v6 选项。
  57. 编程 » vbs, 办公自动化
    工作中或多或少有些琐碎的事情,比如每天要发送和接受数据,很多是通过邮件的方式传递的。之前写过 如何在 Outlook 里自动保存附件 ,这里再发一个如何更方便地发送带附件的邮件。
  58. 以下对并行计算的个人理解受到较多质疑,删除之。
  59. 最近用 Matlab 写了个东西,运行效率不如我意。用 Profiler 跟踪了一下,结果让我大吃一惊。其中三分之一的时间花费在 datestr 这个函数上,六分之一的时间花费在 save 和 load 数据上。这里先谈前一个问题,关于 save 和 load 的效率以后再谈。
  60. 基于将工作文件在家里电脑和公司电脑上的转移、Kindle 上电子书的管理的需求,我用 Matlab 写了几个函数,用来实现这些需求。
  61. 编程 » dll, Matlab, VB
    这里放两个在实际工作中遇到的问题,还没找到解决的方法,向广大网友求助。
  62. Matlab 的 database 工具箱只支持 ODBC 数据库连接,在使用之前需要先设置 ODBC 数据源。之前在 Excel 里用的是 ADODB ,使用 ADODB 的好处是无需设置 ODBC 源,似乎效率也要高一些(但我一直没弄懂 ADODB 是什么东西,所以效率这东西我也说不清)。
  63. 如果一个日期(或者时间),如果用字符串,比如"2010-10-04"的形式,各个系统都没有什么区别。在某些时候,将日期用数字表示,将大大增加对日期查找、比较的效率。而如果用数字来表示日期,在不同的系统之间差别就大了。
  64. Excel、Matlab 在与数据库交互数据时,通常需要事先配置好 ODBC 数据源,这导致一个文件换到另一台机器还需要重新配置 ODBC。手工配置太麻烦,从国外一个网站看到一种解决方案:
  65. 现在相机的像素实在是太高了,上次 去泰山玩 ,朋友的 1200 万像素的 D90 照出来的照片分辨率高达 4288×2848 ,即使转为 jpg 格式,每张都在 5M 以上。而现在电脑屏幕的分辨率最高也在 1920 以下吧,超高分辨率的照片除了打印大照片之外没什么用处,反而不方便传输、流通、保存。
  66. 最近做一些 优化问题 ,找到了 YALMIP 工具包。在其帮助文件里看到如何使用该工具包 求解 sudoku ,整个思路是将问题转化为整数规划问题。这样的思路以前也想到过,但总觉得整数规划问题的求解会更复杂。但是下面的 Matlab 代码,显示它可以非常简洁,思路见程序的注释(程序运行需要安装 YALMIP 工具包):
  67. 上次大规模使用 Matlab 还是本科的时候,当时还是 5.3 版,现在重新尝试它,已经是 7.8 ( R2009a ),而且 R2010b 版都已经发售。而这些版本引入的一个新玩意儿便是面向对象化编程( object-oriented programming , OOP )。
  68. 编程 » Matlab, 优化
    最近做了些东西,用到了 Matlab 的优化工具箱, optimization toolbox。因为以前没用过这东西,今天把这个工具箱的帮助文档基本上翻了一遍。
  69. 本文结论: 不要过度担心 Matlab 的传值调用的效率问题。
  70. Excel 有一个很有用的功能是直接导入外部数据库或者使用外部数据源建立数据透视表和数据透视图。但比较可惜的是,这个数据源的查询语句是静态的,它无法根据日期自动修改(比如在应用中,我们希望每天获取的外部数据都是当天最新的数据),下面两个函数是修改外部数据源的 VBA 代码,调用它们就可以建立动态的数据源。
  71. 编程 » Excel, VBA
    最近学到一招,效果不错~
  72. 在工作中定期或不定期会收到一些数据文件,然后要将它们的附件保存到自己的电脑上,下面演示如何让 Outlook 自动做这件事情。
  73. 编程 » Excel, VBA
    效果图:
  74. 编程 » Excel, VBA
    某些时候需要打开 Excel 文件来获取或者写入数据,但又不希望跳出打开的 Excel 文件窗口,可以用下面的代码:
  75. 时间管理中有重要的一条, 保持你的收件箱整洁、干净 。Gmail 一个重要的创新就是 Archive (存档),选中邮件后点下「archive」按钮或者按一下快捷键 y ,邮件就被移出收件箱,但又跟删除邮件不一样,这些邮件还可以继续被搜索。这里讲最近写的如何在 Outlook 里实现这个功能。
  76. 编程 » Excel, VBA
    VBA 的 Date 类型比较奇怪。
  77. 编程 » Oracle, VBA, 数据库
    最近写一个 vba 程序的时候不间歇的出现 「存取器不是参数存取器 」或者「列值被截断」的错误。后来发现对于我等不专业人士,遇到这样的错误还挺 e 的。下面是综合各种资料了解到的一些东西。
  78. 最近写了一些 Matlab 程序,想起以前想过的一个东西,记录一下。
  79. 编程 » Matlab, swap, 函数包
    Matlab 程序效率低下,其中一个原因就是它的参数无法引用,每次都是传值。这不但导致效率问题,要实现某些功能,也需要一些特殊的手段。比如最简单的,如果交换两个变量的值,也就是在 C/C++里的函数 void swap(int& a, int& b),在 C/C++里实现很容易,但在 Matlab 里,你会吗?
  80. 编程 » 算法, 算法分析
    下面这个求 \( 1/\sqrt{x}\) 的函数号称比直接调用 sqrt 库函数快 4 倍,来自游戏 Quake III 的源代码。
  81. 编程 » IQ, 测试, 脑年龄
    从+0 那看来的。主要测试快速记忆能力。
  82. 编程 » Baidu, Google, IT评论
    Google 更懂中文我拿不出什么确切的证据(虽然我已经这样认为),但下面的数据是否能说明 Google 确实更懂 阅微堂 呢?
  83. 最近做社会实践项目遇到的一个问题,需要动态修改一个表格。本来以为要想修改一行,直接设置新的 tr.innerHTML 即可。后来发现在 Firefox 下可行,但在 IE 下通不过,查看了一下帮助,才发现 innerHTML 还没有一个通用标准,而在 IE 下 innerHTML 对于标签为 COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR 的元素是 只读 的。要想在 IE 下动态修改表格,只能使用 insertRow 和 insertCell;