一致哈希(Consistent Hashing)简介

一致哈希 是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中 K是关键字的数量n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。一致哈希的算法最早在如下论文中被提出:

一致哈希在分布式计存储架构中无处不在。是被证明的可以解决经典哈希视图发生变化时,数据搬迁尽可能少的算法。最早是在分布式缓存中提出,参考如下文档,这里提供原文的下载链接:《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web》

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 3票) Loading ... Loading ... | 归档目录:存储技术, 架构设计, 算法数据结构 | 标签: , , |

分享一个树莓派延时摄影和视频制作代码

心血来潮,想着做一个阳台花草生长的延时视频。阳台上正好有个树莓派,只需要一个摄像头即可。说做就做,500万像素的树莓派摄像头,包邮只需要30元。基本够够用了。接好线,固定好摄像头位置。

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 2票) Loading ... Loading ... | 归档目录:实用脚本, 数码硬件, 软件应用 | 标签: , , , |

使用let’s encrypt制作免费HTTPS证书

在外网访问家里的NAS服务器上面的jAlbum相册时,使用HTTPS更安全。之前使用的一直是自签发的证书,在自己的手机上面导入了自签发证书的CA,因此浏览器一直显示安全的绿色。今天在其他手机上面使用HTTPS访问时,打不开页面,使用HTTP访问则没问题,很快就想到这是证书的问题,自签发证书的根证书没有安装。但是总不能每次有新的设备访问时就要求其安装CA证书,除非这个服务能做到像12306那么不可或缺(12306上线很多年都不购买商用证书,一直要求用户下载证书安装到本地,这种做法很危险)。

阅读全文 »

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

记录一下最近修改的两个Bug

最近改了两个jAlbum的bug,问题并不复杂,但是比较有代表性。在这里记录一下。第一个问题是,在单张照片的页面提供了一个“隐藏”当前照片的按钮。当点击该按钮时,页面重新load,显示下一张照片,使用了当前照片的ID来构造下一张照片的url,即加载url:
/?next=[currentphotoid]&count=1,
具体到服务端接收这个请求时,需要使用当前照片的ID到数据库中索引下一张。
然后对当前照片发起删除操作,即使用ajax发起一个HTTP请求:
DELETE /photos/[currentphotoid]
向服务端发送一个delete请求,具体的浏览器端代码为:

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 3票) Loading ... Loading ... | 归档目录:Java, WEB网络, 多线程编程 | 标签: , , , |

使用ffmpeg工具转换mov、avi格式为mp4

iPhone拍摄的视频备份到Home-NAS后,文件类型是mov,无法在网页上直接呈现,因此需要对视频编码进行转换。本想找一个批量转换的工具。无奈,从几个下载网站上面找了多款工具都不能完美实现,要么需要购买,要么转换后的视频效果极差。考虑使用ffmpeg工具,直接使用命令行转换,最终使用如下脚本实现了格式转换和元数据信息的拷贝。

set indir=%1

for %%a in (%indir%\*.mov) do ffmpeg -i "%%a" -map_metadata:s:a 0:s:a -map_metadata 0:g -map_metadata:s:v 0:s:v -vcodec copy -acodec copy "%%a.mp4"

for %%b in (%indir%\*.avi) do ffmpeg -i "%%b" -map_metadata:s:a 0:s:a -map_metadata 0:g -map_metadata:s:v 0:s:v -vcodec copy -acodec copy "%%b.mp4"

将如上代码保存为bat文件,将存放有mov和avi格式文件的目录拖拽到bat文件上面执行即可实现转换。

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

Google Project Zero成员谈如何入门安全工作

已经有很多人(包括我谷歌的同事,ParisaMichal已经就这个话题写过自己的感受,我建议你仔细阅读。我知道我写的这些可能已经有人说过了,但是每隔一段时间,我总是会再次遇到这个问题,于是我决定写下自己的经验。

首先,我是一个应用安全研究员,我是从 漏洞研究/安全审查/bug寻找/黑客攻击 等角度来阐述安全入门的。在安全领域还有很多其他的方向,比如安全研发,恶意软件分析等等,这些我并不熟悉。

那么,我是谁?为什么你要在这个话题上信任我呢?嗯,首先我不是说你应该完全信任我,因为每个人的经验和每个人的道路都是有所不同的。但如果您对我感到好奇,我可以告诉您,我现在是 Google Project Zero 的成员,我曾经是谷歌安全团队的成员,是多个安全工具的作者多个安全工具的作者,如果你在这个博客上滚动足够长的时间,你会发现我已经从事安全工作十多年了。

我认识的安全研究员来自很多不同的背景,但是我的背景有所不同,我有相当强的学术背景,这在我的同行中是非常不典型的,当然这并不是进入安全领域的要求。然而,我所知道的安全研究员中的大多数人都有一些共同点,这里我们来看第一条:

阅读全文 »

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

Java 9 踩坑之启动参数

Java 9 出来一段时间了,也试着在Java 9 下运行jAlbum,原以为以Java一贯的向下兼容原则,应该都不用重新在JDK9编译,直接运行即可。然鹅,运行时报错,找不到类文件:

阅读全文 »

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

给CSDN极客和开发者头条增加RSS源

CSDN极客,网址:http://geek.csdn.net/,经常有一些比较好的链接,对于程序员来说,有一些阅读学习价值。不知从何时开始该网站不再提供RSS订阅,这对于RSS重度使用者来说有点难以忍受。因此花了一下午时间做了一个抓取该网站头条主页内容生成RSS订阅地址的实现。使用PHP后台抓取网页内容,对内容进行正则匹配后过滤出有价值的链接,生成RSS XML格式文档后返回。订阅地址为:http://codefine.site/rss_factory?url=geek.csdn.net。同样,也给支持开发者头条(https://toutiao.io)新增了RSS源:http://codefine.site/rss_factory?url=toutiao.io

订阅效果:

CSDN极客订阅

阅读全文 »

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

一些有用的Linux工具和命令

1、查看进程树:ps aufx,可以看到进程的派生关系、运行用户、启动时间、耗时和内存CPU等进程状态。

阅读全文 »

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

2017年10大热门卡片电脑

外媒给出的2017十大热门卡片电脑,大多数在淘宝都能找到销售链接。根据实际需求选取合适的卡片电脑,花最少的钱又刚刚好解决问题,是最大的乐事了。

1. Raspberry Pi Zero W — $10

pi-zero-w

基本上是目前市面上最便宜的卡片电脑了。支持Wifi和蓝牙无线连接。可以运行任意Linux系统。

阅读全文 »

| 1 分2 分3 分4 分5 分 (5.00- 4票) Loading ... Loading ... | 归档目录:数码硬件 | 标签: , , , |
返回顶部