关于编程的一些感悟

这几天我在虚拟机里安装了ruby version manager,试图重写自己过去留下的几百行乱成一团的代码(虽然都还能用),并打算进个小步啥的,结果几天下来,一无所获。

于是我想:what the hell are you doing?

然后我试着又去搜索,看库文档,重新翻看编程书籍,但是感觉还是没什么进展。你没找到自己想要的。but why?我躺在床上一遍又一遍想这个问题,后来忽然有种悟的感觉:
那一切都他妈是扯淡。

当然,编程书籍是重要的,文档也是重要的。但是一本书并不能提供你的水平。我甚至购买了O’Reilly出版的ruby编程语言,结果呢,我懂得很多一般开发人员都不知道的细节和诀窍,但是我能独立开发一个web网站吗?显然不能。

书和文档,提供给你的只是零件,怎么把这些乱七八糟的齿轮组装成能用的机器则是你的问题,是人的问题,要解决这个问题,唯有学别人的样——读源代码。

因此一门好学的语言,当然语法简单也很重要,但更重要的是能不能找到好读的项目代码。ruby大部分的gem,都属于web开发领域,少数web无关的也都很陈旧,而他们往往依赖于其他gem,被依赖的gem很多已经升级换代导致api都不兼容了,所以这些web无关的玩意儿可能根本就跑不起来,本身都需要改写,谈不上再从中学习。(我感觉)python和perl就好一点。但更好学的,当然就是javascript,丫几乎无处不在,所有的web网站都有javascript,userscripts.org上有成堆的js脚本,firefox和chrome所有的扩展都用js写成并且可以拆开来看,要获取源码实在是太容易了!而且依赖google的v8引擎,js是现在几乎最快的可媲美c++的脚本语言,用node.js,可以脱离浏览器使用。

所以我将学javascript。其实api,库文档,书籍都不重要,那些标准,三年之后就全变了,干嘛要努力去记住呢?重要的是学习的速度,是结果

输入帐号和密码,点击开启无线

NetKeeper无线分网程序(手机可用)

学校换网了,从ipass换成了Netkeeper了,原来提的帐号密码也就没用了,Netkeeper的帐号是动态的,帐号最前是两个\r\n符,在这之后是8位的动态校验码,然后再加上固定帐号,密码不变,因为路由不能接受\r\n符,所以路由失效,这个可以通过网页的Get值提交绕过,有点麻烦不多说了,以下的方法是所有的win7电脑都能用,无需要路由。

花了一个晚上来写这个程序,半年没写,啥都忘了,唉!

NetKeeper无线分网程序

第一次运行此此程序需要设置两点,如下。第一:点击检测网卡驱动,弹出窗口如下:

NetKeeper无线分网程序

如果支持的承载网络为否的话,请安装驱动精灵更新显卡驱动。

第二:打开windows服务,确定windows firewall服务是否开启,没开的话会造成网络共享失败。

NetKeeper无线分网程序

第一次运行程序请作如下设置:以右键管理员身份打开程序,输入帐号和密码,点击开启无线。

输入帐号和密码,点击开启无线

然后等网络列表中出下open连接,此时是没有网络访问的。

open连接目前无法访问

打开网络和共享中心:

打开网络和共享中心

点击NetkeeperWide,常规-属性-共享,作如下设置:

点击NetkeeperWide设置

确定后,发现无线网络已经连接了:

无线网络已经连接

以上只需要设置一次,下次连接时只要输入帐号密码即可,设置好的无线网络手机也可以连接。(QQ:359698859)

matlab怎么加载excel表格

Matlab允许我们加载很多其他类型的数据列表,通常大家都用txt文档,这时因为加载速度比较快的缘故,但是当处理海量数据的时候还是用excel表格来的方便,因为表格的编辑会比较容易。

Matlab加载excel表格的命令式xlsread,用法是xlsread(‘文件名’),要求excel表格在工作目录下,不然要用绝对路径来替换文件名。比如加载工作目录下的temp.xlsx文件,命令就是R=xlsread(‘temp.xlsx’),如果这个文件没有在工作目录下,比如在C盘下就需要输入:

R=xlsread('C:\temp.xlsx')
程序猿

matlab代码求圆周率的简单算法

说起圆周率的算法很多人都会想起一大堆的无穷级数等各种表达式,但是这样的算法需要比较高的数学推理水品,而且对于很多初学者而言很难理解。程序员不能仅仅是机械的写程序,必须要真正的理解程序中每个代码的意义,这样才能像写文章一样写出好程序来,下面介绍一种运算量很大但是却非常简单的圆周率算法。

先问一个问题,圆周率是什么?

可能有人会说是圆周长和直径的比,或者有人说圆面积和半径平方的比。我的一个老师曾经说不要为了复杂而复杂,抓住问题的本质往往是最有效的手段,从圆周率的本质而言,它不是什么无穷级数的收敛值或者某个函数的极限值,它只是我们一个简单的面积比或者长度比。

此外就是,无论怎么计算,圆周率是算不完的,所以必须有无限高的精度才能把圆周率准确的算出来,这样虽然很麻烦却给了我们一个很大的舞台,只要我们这个算法在无限次运算后理论上能得到圆周率精确值就说明算法还是可行的(虽然要考虑效率的问题)

下面说我的算法,以半径1画个圆,然后用一定的步长把圆的外接正方形内部分用点阵的方法扫描出来,这样就可以很轻松的计算每个点是不是在圆内,圆内点的数目和总数目的比就是圆周率的1/4

程序实现起来很简单,下面是matlab的代码(C语言orC++的自己写吧,很简单的)

x=-1:.00003:1;
y=x;
number=0;
number_all=length(x)*length(y);
for i=1:length(x)
    for j=1:length(y)
        if x(i)*x(i)+y(j)*y(j)<1
            number=number+1;
        end
    end
end
pai=4*(number/number_all)

用这个matlab代码的方法算出来的圆周率是3.141560962与3.141592654的公认值还是有比较大的差距的,但是只要提高X的扫描范围就能极大地提高精度,可惜本人的电脑不行,就只能算到这个地步了。