一张图让你看懂各开源License

你是否遇到过开源License,精炼而又晦涩的文字通常要读半天才能理解,而且大多数License差别不大,容易混淆。下面这张图让你短时间迅速掌握各种开源的License。

图片来源:阮一峰的博客

各种开源Lisence的限制点

| 1 分2 分3 分4 分5 分 (4.83- 6票) Loading ... Loading ... | 归档目录:移动互联, 软件技术 | 标签: , |

搭建了一个iNews程序

在分享网站上面看到开源了一个类似Hacker News程序的框架(Trimidea / inews),就迫不及待的安装了。安装过程并不轻松。首先是composer安装的问题,然后是源代码中的安装流程有笔误,自己对PHP代码也不了解,折腾了比较长的时间。终于还是搞定了:http://news.codefine.site/

这里把我的安装过程简单发一下:

1、确保PHP 5.39以上的环境;

2、准备好一个MySQL的帐号,有创建库的权限;

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 4票) Loading ... Loading ... | 归档目录:建站技术, 移动互联 | 标签: , , , , |

广度优先搜索解决“营救公主”问题

在之前的一篇文章(迷宫营救公主算法)中提供了一个半成品的解决方案,之所以说他是半成品,是因为首先选择的算法就不对,采用的是深度优先搜索,其次也没有真正的用对深度优先算法,走过的点应该标记为已经走过,而不应该重复遍历该节点。下面的文章对于广度优先和深度优先两种算法的解释非常到位。今天准备把这个问题再完整的用正确的算法解答一遍。

文章链接:【图论】广度优先搜索和深度优先搜索

就营救公主的问题而言,这里不再重复描述问题了,请点击这里查看题目分析:链接。这次选用广度优先算法来解决该问题。上面的算法介绍文章中对该算法已经分析得非常清晰了。先给解决本问题的算法伪代码:

这里每个节点有三种状态:

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 3票) Loading ... Loading ... | 归档目录:Java, 算法数据结构 | 标签: , , , , , |

DRBD源码分析(三)——块设备驱动和IO队列处理函数

很长时间没有继续这个源码分析了,原因是到了主流业务,对底层的驱动知识不太了解,也没有太多时间。

在上一节中分析到

STATIC void drbd_connector_callback(struct cn_msg *req, struct netlink_skb_parms *nsp)

方法。在该方法中有一处调用:
mdev = ensure_mdev(nlp); 

在这个调用中,会进行设备的注册和驱动的加载。这一节重点分析struct drbd_conf* drbd_new_device(unsigned int minor)方法。该方法主要是一个块设备的驱动。关于块设备的驱动程序的编写,可以参考CU上面的赵磊的帖子,该帖子绘声绘色的讲解了如何从0基础开始编写块设备驱动:链接

对于每一个块设备,会进行一系列的初始化,会启动3个内核线程:

drbd_thread_init(mdev, &mdev->receiver, drbdd_init); 
drbd_thread_init(mdev, &mdev->worker, drbd_worker);
drbd_thread_init(mdev, &mdev->asender, drbd_asender);

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 9票) Loading ... Loading ... | 归档目录:C/C++, DRBD | 标签: |

一次与“伟大的墙”插肩而过的经历

刚刚发现所有文章的图片都无法加载,原以为我的WordPress程序存在漏洞被黑了,后来使用curl命令直接获取图片也不行。检查后台的访问日志,发现只要是2013年的日志的图片都无法加载,可以看到服务端是正确接收到了请求,并且已经向客户端返回200 OK,只是在传输图片数据时无法接收。

image

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 3票) Loading ... Loading ... | 归档目录:奇趣见闻, 建站技术, 移动互联 | 标签: , |

从百度网盟广告页面中拔了一个Metro风格的标签云

一直想做一个Metro风格的标签云,但是没有JS的功底,自己实现不了。于是从百度推广的Metro风格的广告页面中找来了代码,修改成了如下页面:

http://codefine.site/tagcloud.htm

然后到WordPress的后台的小工具页面添加一个HTML块,内容为:

<iframe style="margin:6px 0 8px 0; border-right-width: 0px; width: 100%; 
border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px"
 src="http://codefine.site/tagcloud.htm" width="100%" height="280px" 
marginwidth="0" scrolling="no" ></iframe>

 

tagcloud.htm页面的内容非常容易定制,包括颜色集,整个block块的长宽等。由于这个只是抄袭过来的代码,标签的大小并不能体现文章数的多少,鼠标悬停在超链接上面时也不能浮出文章书目值。

应用这个小模块后生成的标签云效果截图为:

Metro风格的标签云

| 1 分2 分3 分4 分5 分 (5.00- 2票) Loading ... Loading ... | 归档目录:建站技术 | 标签: , |

Hacker News的排名算法–越是简单的越是有用

从dbanotes.net的startup news知道了hacker news,关注了一段时间,发现排名确实能反映绝大多数用户的喜好,并且也不至于让比较热的文章永远出现在前列,而导致没有新的内容被关注。因此对其算法比较好奇,在网络上搜索了一下,看到实际的算法,有点不敢相信,整个系统只需要依赖这样一个简单的算法,不需要任何人工干预(也许链接是否发布出来需要审核)。hacker news的原理很简单,任何人都可以提交链接到网站首页,然后大家可以阅读其他人提交的链接,当发现该链接对自己有意义或者非常好时可以点击一个类似赞的按钮,给该文章投上一票。最终首页上会按照文章的票数多少和发布时间对文章进行热度排序。

整个算法就是基于下面这个表达式:

r=(P – 1) / (t + 2)^1.8

P是得票数,t是时间,天为单位。因此时间越短得票数越多的文章排名靠前,得票数一定,随着时间的增加,文章的排名也会慢慢降低。

已经有人画出了不同的P值对应的r与t的函数曲线图:

bg2012022405

参考链接:基于用户投票的排名算法(一):Delicious和Hacker News

| 1 分2 分3 分4 分5 分 (5.00- 5票) Loading ... Loading ... | 归档目录:移动互联, 算法数据结构 | 标签: , |

Anonymous:Touch ID帮助政 府收集全民指纹

知名黑客组织Anonymous今日发布了一段视频,称苹果iPhone 5s上配备的Touch ID指纹识别传感器将帮助美国国安局(NSA)收集指纹数据。这段视频中揭秘了很多苹果、AuthenTec和美国各种安全局勾结的证据。Touch ID指纹识别技术正是来自苹果收购的AuthenTec公司,而AuthenTec公司的董事会成员与美国国安局各种勾结。

来自cnBeta

| 1 分2 分3 分4 分5 分 (4.50- 2票) Loading ... Loading ... | 归档目录:移动互联 | 标签: , |

[转] 效率带给华为大数据存储新动力

[导读]怎样才能为企业用户提供大数据存储的最佳效率平台呢?华为存储在数据价值最大化、核心创新理念、先进的平台架构等方面不断努力,旨在打造最佳效率平台,带来企业用户大数据存储新动力。

2013年9月29日存储在线原创:效率,自古以来都备受人们重视,不管是处于哪个时代,人类社会的进步都离不开效率的提升。当前,在大数据时代,企业用户更是对效率重视有加。怎样才能为企业用户提供大数据存储的最佳效率平台呢?华为存储在数据价值最大化、核心创新理念、先进的平台架构等方面不断努力,旨在打造最佳效率平台,带来企业用户大数据存储新动力。

三位一体是根本

随着云计算的落地,大数据领域的风起云涌,在大数据存储方面,大家众说纷纭,作为存储领域的实力派选手,华为从最初做存储开始,就一直坚持华为特色的自研体系。当然,在面对大数据对企业用户带来新的挑战,华为提出了“三位一体”概念,OceanStor N9000通过把数据的迁移封装到一个系统内,这样对外就大幅降低了系统间的数据迁移开销,对企业用户来说,可以非常直观地看到一个简单易用的、高度智能的、三位一体的自动管理的系统。

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 2票) Loading ... Loading ... | 归档目录:软件技术 | 标签: , |

架设Tiny Tiny RSS(TTRSS)阅读器,找回Google Reader!

用了一段时间的digg reader,感觉在墙内经常连不上不说,还不能取消订阅,并且过多的依赖浏览器客户端的操作,有点麻烦。找到了这个05年就发布的个人阅读器程序。

有一些细节的功能非常赞,找到一个比较不错功能介绍文章:点击这里。安装过程也挺简单的,按照官方给出的步骤来就可以,只是如果不是完整的Linux虚拟机,不能使用定时更新功能,需要手动向更新后台发送请求才行。

经过一番配置,终于整得比较像Google Reader了。但是后台不支持自动刷新。前台页面上面也没有刷新按钮,需要在单个feed上面双击才能同步RSS源。后面再研究一下这个,做一个前台自动同步RSS源的实现。同时也提供刷新按钮,包括单独的feed和所有的。还有虽然支持多用户,但是同一个feed在多个用户之间是不共享的,这样对于服务器的压力其实是比较大的。估计这样的实现是因为最初这个程序只是考虑提供给个人使用的,多用户的实现是后面新增的。

也配置了开放注册,想要体验的话,可以注册帐号测试。使用链接:http://rd.codefine.site/

分享一下我的订阅,主要是一些技术资讯,有点极客的性质:OPML文件

使用步骤:

0、使用Chrome或者Firefox浏览器打开http://rd.codefine.site/,注意,不支持IE内核的浏览器;
1、使用邮箱注册帐号,务必使用有效的邮箱地址:

注册

2、注册成功后,登录邮箱,查看后台发送到邮箱的密码;
3、使用帐号和密码登录;
4、初始情况下,只订阅了本站的RSS。订阅更多的RSS Feed需要手动添加。
5、导入OPML文件是一种比较快捷的方法。但是可能导入的大部分内容都不是自己关心的。因此建议自己在阅读到好的主题网站后,再手动添加订阅源。导入OPML文件的步骤:
点击右上角的”动作“按钮,出现如下图菜单:

image

选择”Preference“,会打开如下后台管理页面:

后台管理

选择”信息源“,出现如下页面:

信息源

选择下方的”OPML“,会发现有导入按钮:

导入

首先选择从OPML文件链接下载的OPML文件,然后点击Import my OPML即可。
6、手机APP访问该阅读器,首先需要安装News+的应用。下载地址:链接(最终应用放在Google Play上面,需要外网访问权限)。目前只在Google Play上面看到有该应用下载。
7、再安装一个Tiny Tiny RSS| News+的扩展应用,在News+的扩展管理中可以找到安装链接,使用Play商店打开安装链接安装即可。
8、第一次打开TinyTinyRSS条目时,需要输入服务器地址,登录名和密码,使用之前获取到的即可。
9、接下来即可在手机上面浏览各个RSS订阅了。
10、要想使用RSS不必如此费时,目前还是有一些比较好用的RSS在线阅读服务器的,同时也支持手机端同步到应用。这里提供更多一种选择。

Tiny Tiny RSS

[修改记录]
08/19/2014
:更新订阅RSS源。结合手机应用(News+)配合订阅站点使用。

09/28/2013:重新开放注册。修改了默认配置,注册完成后,用户的界面即是Google Reader的样式。修改了一个小的bug。

09/29/2013:配置简单刷新模式,只要浏览器打开了主页面,则会随机刷新订阅的RSS源。在订阅的Feed特别多时,可能不是太及时。

10/26/2013:修改新注册用户的订阅Feed中的条目的保存时间为8天,默认情况下保存8天。

| 1 分2 分3 分4 分5 分 (4.90- 10票) Loading ... Loading ... | 归档目录:建站技术, 移动互联 | 标签: , , |
返回顶部