利用牛顿迭代法求平方根

昨天查mathomatic的MAN时看到一个很有意思的计算平方根的方法(当然不是叫你在Excel里n^1/2啦!):

求n的平方根,先假设一猜测值X0 = 1,然后根据以下公式求出X1,再将X1代入公式右边,继续求出X2…通过有效次迭代后即可求出n的平方根,Xk+1

 x_(k+1)=1/2(x_k+n/(x_k))

先让我们来验证下这个巧妙的方法准确性,来算下2的平方根 (Computed by Mathomatic)
Read More

Linear Least Squares

纯粹大学高等数学,还附带一个C程序…已感不适者请略过,go to an interesting fashion trend magazine :D

注: 此文章前半部分翻译自wikipedia这个墙外之物。

Linear Least Squares (线性最小二乘法,以下简称LLS),是解决线性回归问题的重要方法之一,常常用来求解等式多于变量情况下的最优线性方程。特别是在统计学中,常常需要根据一组数据(例如时间序列数据)来模拟其自变量与因变量之间的线性关系,用最小二乘法可以很好的拟合数据,消除残差的不确定性带来的影响。
Read More

Blogbus Hack 2 : 打造Tag Clouds效果

最近在弄个blogbus的模板,折腾了几天,难产again…暂时性转移到另一个idea上来,给blogbus的tags输出做成tag clouds(标签云)效果。什么是Tag呢? 自己去看blogbus的help吧。什么是Tag Clouds呢? 请看下面这个效果图,tag文字大小依据使用频率多少区分开来,使用Tag Clouds可以更清楚的传达what’s your blog all about,更多的信息看SmashingMagazine的这篇文章Tag Clouds Gallery: Examples And Good Practices吧。

wptags

Blogbus的tag输出方式是固定的,排列顺序由使用最多的到使用最少的,你可以设定显示tag的数目,为了更好的Tag Clouds效果,建议设置显示数目大点(太大了,也不是件好事,至于为什么,我待会再说)。正是因为Blogbus的封装处理,要hack这种Tag Clouds效果只能从javascript+CSS入手了 (:此hack不适用于旧版blogbus模板系统)
Read More

QQ签名秀 : 在你的blog里调用QQ签名

qqsign 在上篇日志里我就提到要写一个输出QQ签名的程序了,作用是仅仅通过插入一行类似于豆瓣秀的代码在任意页面上显示最新的QQ签名,有点类似于twitter输出。经过两个晚上的努力,初步实现了我想要的功能,并完成了前台页面的设计,IE下还是有点wacky :( 。Now this is the official release announcement: QQ签名秀web程序诞生!

QQ签名秀网站 : http://punkid.org/qqsign/

功能/Features

  • 只需要简单的插入一行代码就能实现QQ签名的输出,而此过程的实现不需要你的主机支持php,也无须对XHTML有太多了解,一切我都替你完成了
  • 支持UTF-8和GB18030两种编码输出
  • 可定义显示最近QQ签名的条目数
  • 发表时间显示为更人性化的”XX月XX天XX小时前”
  • 可以通过CSS改变输出样式
  • 可通过前台页面生成你需要的脚本代码,无须手动配置
  • 前台页面配合预览功能,以验证输出的正确与完整

FAQ/疑问解答

  • 为保证顺利抓取到你的”心路历程”xml文件,请确保你开启了QQ空间功能,并没有设置访问密码;与此同时,你还需要在Q-zone下设置把最新签名添加到”心路历程”下
  • UTF-8/GB18030该选择哪个编码呢? 国内很多网站都还在使用GB(GB2312,GBK,GB18030)码,而时下的趋势是使用UTF-8码,用什么编码取决于你的页面编码。例如blogbus用的就是UTF-8码。
  • 显示条目数究竟能设置多大值? 因为QQ的xml文件并没有一次性输出所有历史签名,所以条目数不宜设置过大。当然,即使你设置值已经超过了最大实际值也不要紧,程序最自动输出到最大实际值后停止的

程序实现过程

这个程序的原理很简单,读取Q-zone里的”心路历程”的XML文件,经过数据处理后再输出为javascript形式。写这个程序遇到了四个困难:

  1. Q-zone的代码实在太乱太dirty了,腾讯又没有官方明确申明有RSS,而Q-zone又没法在非IE浏览器下浏览,我没办法使用FF下的firebug来inspect它的XML文件,最后通过从IE临时文件中找到js文件,把xml文件地址给揪了出来
  2. 我本打算采用php的SimpleXML/DomDocument直接读取QQ的XML文件,但是DH主机不支持URL-file-access mode,不得不放弃了这种最简单的方法,好在我曾经在给自己的blog写个wordpress插件时发现可以用MagpieRSS来读取XML文件,并最终通过MagpieRSS实现了成功读取
  3. 第三个困难是编码问题,QQ的xml输出的编码是GB2312,在我用MagpieRSS之前我曾考虑过用curl下载XML文件并储存为字符型数据,结果curl把GB码的汉字全丢掉了,更糟糕的是,我测试用的几个朋友的QQ签名里因为各式各样的非汉字/非英文特殊文字弄得读取出错,换成MagpieRSS后,发现指定输出编码的话也会出这样的问题,最终的办法是使用早先的MagpieRSS版本,不指定输出编码,直接读取XML数据储存为数组
  4. 最后一个问题是怎么把php执行的结果由javascript方式输出,研究了下livid的project babel程序ing模块代码,通过直接在php里写入javascript的document.write格式输出搞定了。

最后,特别感谢Druggo和我熬夜奋斗啊,很多东西都是他帮忙想辙的! And dont forget to send some feedbacks to me if you have some better ideas or suggestion.

决定启用jQuery

jquery

这两天都在看jQuery的doc,发现这是个十分容易上手并掌握的javascript framework。正如其slogan说的一样: Write Less, Do More,连我这种javascript beginner也能很快的写出漂亮好用的代码来。

jQuery的代码很human-readable,即便是没看doc,光看代码也能明白这是拿来干嘛的,怎么运行的,稍微看下官方的tutorials后就可以自己写东西了。
Read More

You Might Know

This site is powered by WordPress CMS & hosted by Dreamhustle Dreamhost.

And the theme is inspired by WP Typo and completely crafted under Gentoo Linux with VIM editor.

Sponsors

Monthly Archives

Search