【每周一文】Neo4j教程二:二度人脉推荐

业务需求

人脉分为一度人脉和二度人脉。二度人脉包括你的好友的好友、同学的好友,2nd后面的数字代表二度人脉的人数,后面的+66是最近好友的好友、同学的好友最近添加的好友或同学人数。

我们的需求就是要给用户推荐朋友的朋友

比如

张三的朋友有:李四和王五,
李四的朋友有:赵六和钱七,
王五的朋友有:孙八和杨九,

需要把赵六、钱七、孙八、杨九推荐给张三。

二度人脉

【每周一文】Neo4j教程一:基本操作

Neo4j 基本概念

Neo4j中不存在表的概念,只有两类:节点( Node )和关联( Relation ),可以简单理解为图里面的点和边。
在数据查询中,节点一般用小括号(),关联用中括号[]。
当然也隐含路径的概念,是用节点和关联表示的,如:(a)-[r]->(b),表示一条从节点a经关联r到节点b的路径。

节点:
图中的对象
可带若干名-值属性
可带标签
例: (m:Movie {title:”The Matrix”})

关系:
连接节点(有类型、带方向)
可带若干名-值属性

例:(a)-[:ACTED_IN {roles:[“Neo”]}]->(m)

【每周一文】《大话设计模式》php版:策略模式

写在前面

大话设计模式是伍迷写的一本关于设计模式的书,这是我看过的最好的关于设计模式的书,没有之一。书中的示例是基于 C# 语言的。我把代码部分改成了 PHP 版的,以方便 PHP 程序猿查看。以下文字内容来源于《大话设计模式》此书,只不过把代码换成了 PHP 。 Java 版请看这里

【每周一文】使用JWT实现基于API的用户认证

什么是 JWT?

JWT 全名 JSON Web Token,是 Auth0 提出的通过对 JSON 进行加密签名来实现授权验证的方案,它是一种基于 Token 的认证方案。简单的说,JWT 就是一种 Token 的编码算法,应用流程大体如下:

1、客户端将用户名和密码以 HTTP POST 请求的方式发送给服务器。

2、服务器接受到用户名密码并验证通过后,用一个密钥生成 JWT,并将这个JWT 返回给客户端。

3、客户端将 JWT 保存在本地,每次在向服务器请求资源时把 JWT 包含在 HTTP 请求报文里面(authorization header 里面或者请求参数中),然后发送请求给服务器。

4、服务器可以在 JWT 中提取用户相关信息。进行验证。

5、服务器验证完成后,发送响应结果给客户端。

【每周一文】Git分支、标签管理与实战操作

使用场景

分支

凌晨的中关村,灯火通明。

「领导,我 bot 项目的 A 模块进行到约 1/3,突然接到客户通知,B模块的优先级提升」,虽然是凌晨,小袁两眼依然炯炯有神。也许是第一次参加封闭开发,让小袁感觉很兴奋。

「好的,我给你新开一分支 B,在分支 B 上开发 B 模块,这样就不会影响你 A 模块的开发了」。

「Git 真是个神器」小袁带着对 Git 的崇拜,回到工位继续 Coding。

【每周一文】破解图片防盗链入门教程

遇到问题

周末正在陪孩子完游戏,突然电话响起来,一看是武阳,有股想拉黒的冲动,自从上次帮他写了个追妹子的小程序后,丫的把我当成私人顾问了,所有与电脑相关的无关的问题都抛给我。上次半夜打电话问我,微信密码忘了,能不能让我帮他。

「有件事,你比较专业」

「我把公众号的文章 Copy 到我的博客里时,图片不显示,这是怎么回事?」

「怎么让图片正常显示呢?」

这件事,问得还比较靠谱,很多公众号运营应该也出现过这情况。

我们知道微信公众号图片是用 Referer 做了防盗链处理,知道 Referer 的原理,那么防盗链破解也就非常简单了。好在之前用 Readability 做内容抓取时写了个简单的 Referer 防盗链的代理,可以直接拿来用了。