
程序技术
文章平均质量分 63
selfpoised
头像为 Richard Phillips Feynman,不仅欣赏其学术之成就,亦其生活之态度!
展开
-
Writing Solid Code
Writing Solid Code"Writing solid code" means writingMicrosoft® Visual Basic® for Applications (VBA) code or script that performs asexpected and is reusable, easy to understand, and easy to mai转载 2009-03-24 23:23:00 · 1632 阅读 · 0 评论 -
.Net下的线程同步:Part 4 of N--(Locks or Critical sections)
Locks(或者Critical sections) 锁定是一种一次只允许一个线程进入特定代码区段的机制,通过加锁实现。被锁定的代码区段称为critical section(关键区域)。锁定一段代码的方式有多种,下面将一一介绍。在介绍前,我们先来看看什么情况需要锁定:using System;using System.Threading;namespace NoLock原创 2012-02-08 21:40:52 · 575 阅读 · 0 评论 -
.Net下的线程同步:Part 3 of N--(Mutex)
MutexMutex的工作原理与lock关键字基本相同,因此在这里就不多介绍。但Mutex与lock和Monitor的最大不同在于其可以作用于多个进程,可以提供进程间同步。单实例运行Mutex一个最广泛的运用就是使程序只能有一个实例在运行。下面这段代码实现了单实例运行,先打开一个实例,再打开一个实例时由于前面实例的存在则会直接退出。using System;using S原创 2012-02-08 21:07:21 · 1235 阅读 · 0 评论 -
.Net下的线程同步:Part 1 of N--(EventWaitHandle:AutoResetEvent and ManualResetEvent)
写本系列的想法源自: 改善 C#程序的建议6:在线程同步中使用信号量,但是其中只是提到了AutoResetEvent、ManualResetEvent的用法,我觉得不够全面,因此想对.net下的同步方法做个逐一介绍。 本文主要参考:Beginner's Guide to Threading in .NET: Part 3 of n,可以说是对于原文修改再加上个人理解和拆分后的译作原创 2012-02-08 17:35:49 · 872 阅读 · 0 评论 -
C++ 虚函数表
其实关于C++虚函数表的原理和实现,网上的文章可谓汗牛充栋,我写这篇文章的目的不是为了狗尾续貂,其实是为了推荐两篇文章,以便于读者参考,这两篇文章结合起来读,大体可以理解虚函数表的原理和使用示例代码验证。 参考1):C++ 虚函数表解析。该文对于虚函数表的实现讲解的非常清楚。 参考2):我对C++ VTable 的理解 - theCFan的专栏 - 优快云Blog原创 2013-09-03 11:26:18 · 1074 阅读 · 0 评论 -
Spark LDA 主题抽取
本文主要对使用Spark MLlib LDA进行主题抽取时遇到的工程问题做一总结,列出其中的一些小坑,或可供读者借鉴。关于LDA的具体理论等可以自行google。主题预测请参考:Spark LDA 主题预测开发环境:spark-1.5.2,hadoop-2.6.0,spark-1.5.2要求jdk7+。语料有大概70万篇博客,十亿+词汇量,词典大概有五万左右的词。训练语料代码:apache/spar原创 2015-12-22 20:26:44 · 10550 阅读 · 10 评论 -
Spark LDA 主题预测
本文主要对使用Spark MLlib LDA进行主题预测时遇到的工程问题做一总结,列出其中的一些小坑,或可供读者借鉴。关于LDA模型训练可以参考:Spark LDA 主题抽取开发环境:spark-1.5.2,hadoop-2.6.0,spark-1.5.2要求jdk7+。语料有大概70万篇博客,十亿+词汇量,词典大概有五万左右的词。模型准备利用spark mllib LDA进行主题预测需要训练好的L原创 2015-12-23 11:37:17 · 5856 阅读 · 0 评论 -
如何构建停用词列表
在实际使用机器学习文本分类算法(比如lda, bayes, k-means)的过程中,会发现文档的预处理非常重要,如果包含太多杂词,则算法效果往往会大打折扣。预处理中,停用词过滤是非常关键的一步,但就目前而言,并没有完全自动一步到位的实现,而且针对不同领域停用词可能还有变化。但是大体有些规律可以遵循,加上人工干预,应该能达到不错的效果。 下面是一些可行的停用词过滤方法,供参考:原创 2016-01-26 16:18:49 · 6910 阅读 · 0 评论 -
基于virtualbox安装spark-yarn-cluster
打算自己玩玩spark-yarn-cluster,公司的环境是别人装的,没有亲自搞一遍,总觉得心里不踏实。另外一个重要的原因是,公司的服务器性能比较强,这样spark任务不容易暴露性能问题或者内存溢出,反而不便于深入学习spark。0. 环境 hp ProBook, intel core i3-4030u 1.9Ghz,伪四核,实际应该是双核,8G内存; windows7 旗舰版;原创 2016-03-24 20:34:03 · 2159 阅读 · 1 评论 -
Antlr代码生成及命令行验证
什么是AntlrAntlr广泛应用于编程语言解析,但并不限于程序语言,实际上只要定义好语法规则,几乎无所不能,twitter的查询串解析就使用Antlr。Antlr使用很简单,第一步:定义语法文件,*.g4; 第二步:使用Antlr工具包生成解析代码,目前支持生成java, python, c#…当然对于解析程序语言来说,自己定义语法,那就太费劲了,实际上已经有人做好了,我们就不要重复造轮子了。各种原创 2016-05-16 20:42:10 · 6528 阅读 · 0 评论 -
antlr提取代码注释
使用antlr提取源代码注释的时候,需要定义不同的channel来导流,将注释导流到特定channel原创 2016-05-19 09:38:51 · 4643 阅读 · 0 评论 -
scala类型限定
scala类型限定以类型下界限定举例,S>:T意味着: 如果传入一个参数S,其类型与T相同,或者是T的父类型,那么将会使用类型S。如果传入一个类型T的子类型,那么将会使用类型T。下面以代码来说明类型下界限定。 首先定义一个链表类:case class ListNode[+T](h: T, t: ListNode[T]) { def head: T = h de原创 2016-06-01 16:54:54 · 972 阅读 · 0 评论 -
阅读GFS论文
GFS论文发表距今已经十几年了,据之开源的hdfs也已经在业界得到了广泛应用。为了取得分布式系统的真经,拜读一下这篇经典论文。重要假设软硬件失败乃家常便饭我们写大文件,不屑小文件文件改动的主流是追加新数据,随机写是非主流一旦写完,仅会读取系统结构先整一张比较风骚的图再看一张正经图 那么你应该可以看出,系统就由四部分构成了文件由固定大小的chunk (64 MB) 组成 每个chunk原创 2016-06-15 14:55:16 · 1404 阅读 · 0 评论 -
.Net下的线程同步:Part 2 of N--(Semaphores)
SemaphoresSemaphore 继承自System.Threading.WaitHandle,因此,你可以调用WaitOne(),视情况需要也可以调用WaitAny(),WaitAll(),SignalAndWait()等函数。Semaphore 就其用法而言,与夜店(国外)的运营方式很像。夜店有容量上限,由门卫确保,当满员时,外面的人不允许再进入,直到有一个人出来,才原创 2012-02-08 18:00:42 · 669 阅读 · 0 评论 -
.Net下的线程同步:Part 5 of N--(Interlocked && Volatile...)
其它同步对象Interlocked"A statement is Atomic if it executes as a single indivisible instruction. Strict atomicity precludes any possible preemption. In C#, a simple read or assignment on a fiel原创 2012-02-08 22:09:18 · 1010 阅读 · 0 评论 -
改善 C#程序的建议4:C#中标准Dispose模式的实现
转自: 改善 C#程序的建议4:C#中标准Dispose模式的实现 需要明确一下C#程序(或者说.NET)中的资源。简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类:托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象;非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等;转载 2012-02-10 11:40:46 · 510 阅读 · 0 评论 -
怎样给listview的ColumnHeader 设置图像(in Visual C# .NET)
VS2010不可谓不完备,使用VISUAL C#进行基本的windows forms开发已然变成了傻瓜式的编程。不过毕竟还是有瑕疵,尽然不能给listview的ColumnHeader 设置图片,不知道微软有何难言之隐,而不予实现之。废话少说,下面贴出如何设置的方法。不是我自己想出来的,是微软自己给出的解决方案。 下面是其连接:http://support.microsoft.com/?scid=kb%3Ben-us%3B314933&x=11&y=15 文章题目是:PRB: C原创 2010-07-25 23:11:00 · 1555 阅读 · 0 评论 -
我心目中的编程高手(完整版,转载)
-- Bill Joy MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。心目中的编程高手 (1) Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据说他想看看自己能不能写个操作系统,就在转载 2010-08-01 22:32:00 · 1230 阅读 · 0 评论 -
Visual C# Office自动化Excel进程残留问题
在进行客户端编程时,经常需要进行office自动化操作,其中对于Excel使用大概又是其中最为频繁的。不过,让大家颇为郁闷的是,经常会有excel进程不能被正常关闭。不论大家怎样小心或者是单步跟踪来找问题,总是会有未被释放的com object 。我个人感觉这不能不说是office自动化的一个瑕疵,功能已经很傻瓜了,而其使用却又需要这么谨小慎微。 以前在使用VC++6.0时,就经常会遇到这个问题,最近升级到VS2010,改玩C#了,本以为由于自带的GC功能而能自动解决这个问原创 2010-08-15 16:03:00 · 2182 阅读 · 0 评论 -
.NET 程序员开发利器合集——(Tools and Utilities for the .NET Developer)
You can reach this page anytime at http://tools.michaelcrump.netThanks to everyone that has contributed so far, we are getting several thousands hits from all sorts of developers a day. Recent Contributors include: Deependra Solanky, Grant, Klaus, James,转载 2010-11-07 01:17:00 · 5703 阅读 · 0 评论 -
程序员能力矩阵
Programmer Competency MatrixNote that the knowledge for each level is cumulative; being at level n implies that you also know everything from the levels lower than n. Computer Science 2n(Level 0)n2(Level 1)n (Level 2)log(n) (Level 3)Commentsdata structures转载 2010-11-07 01:24:00 · 767 阅读 · 0 评论 -
UdpClient 与Dispose
最近在.net Winform下面使用UdpClient ,将其作为其中一个子类(设为A)的成员变量,A根据用户操作,而可能会被反复创建和销毁多次。在用户反复操作的过程中,会出现"通常每个套接字地址(协议/网络地址/端口)只允许使用一次"错误。这是由于UdpClient 没有被销原创 2011-07-29 12:55:15 · 1506 阅读 · 0 评论 -
开源图形控件-ZedGraph
最近在做一个小软件,需要绘制实时采集的数据。由于开发平台是.NET4和VS2010,所以自然的采用了Windows下的Charting控件。微软的东西确实是功能齐全,上手也比较快。但是用了一阵之后,发现两个问题:1)长时间测试后性能较差,会耗用较高的CPU(软件采集数据可能持续1原创 2011-07-24 23:08:34 · 3215 阅读 · 0 评论 -
线程与进程
不久前看《The Art Of Unix Programming》。其中有一个小节叫做"Threads —Threat or Menace?"。其中作者从Uinx的开发传统,对多线程的开发模式提出了一些批评。主要是认为多线程带来了同步,死锁,调试困难以及性能等问题。这些确实是在多原创 2011-08-19 16:08:58 · 409 阅读 · 0 评论 -
ZedGraph 与Scrollbar
注:笔者ZedGraph的使用背景,需要长时间测试(24小时),自行存储文件(图形数据文件会有几百M),周期性地删除ZedGraph 数据系列里超时的数据点,以提升性能。当用户拖动查看历史数据时,则从存储文件里读取相应数据。 在使用ZedGraph 绘制实时数据系列时,用户一方面需要图形自行实时滚动,另一方面还需要查看历史数据,这时可以使用控件默认的鼠标加键盘来配合进行拖动,原创 2012-01-13 15:18:35 · 2760 阅读 · 8 评论 -
防止反复提交窗体(PHP)
原文:Preventing Multiple Submits原文链接:http://www.phpro.org/tutorials/Preventing-Multiple-Submits.html摘要:在Web页面中如何防止用户反复提交某个窗口内容,并且从一定程度上提高安全性。开发语言为PHP。The problem of multiple form submissions i转载 2011-12-31 00:26:26 · 1211 阅读 · 0 评论 -
.Net Framework下Timer类之对比
原文:http://msdn.microsoft.com/en-us/magazine/cc164015.aspx原作者:Alex Calvo,is a Microsoft Certified Solutions Developer for .NET. When he's not reading, coding, or meditating, he's playing guitar. You翻译 2012-02-05 17:20:03 · 863 阅读 · 0 评论 -
On Not "using System.Collections.Concurrent"
先看看微软官方文档上的说明吧: "TheSystem.Collections.Concurrent namespace provides several thread-safe collection classes that should be used in place of the corresponding types in the System.Collections and Sys原创 2012-02-07 10:56:24 · 951 阅读 · 0 评论 -
怎么学习分布式系统
关于分布式系统怎么学课程6.824: Distributed Systems https://pdos.csail.mit.edu/6.824/ MIT: 纸上得来终觉浅,绝知此事要躬行知乎学习分布式系统需要怎样的知识?https://www.zhihu.com/question/23645117 老鸟讲怎么学习分布式系统论文The Google File System 惊异于如此原创 2016-07-06 18:45:15 · 2626 阅读 · 2 评论