跳至主要内容

树莓派搭建自己的数据中心NAS

入手了二代树莓派,速度确实比一代好了很多,尤其是在CPU上性能大幅提升,一代树莓派的硬盘IO性能很不好,主要原因是CPU比较弱了,而第二代树莓派CPU性能终于提上来了,但USB还保持在2.0,所以IO还是不是很好,不过考虑到二代树莓派的网口还是100M的,就算换了USB3.0,通过网络传数据还是10MB/s,意义也不是很大了,就先这样用这吧。一代产品由于性能较弱,所以有点像一个玩具服务器,二代产品开始能当作小服务器来用了,这点还是挺不错的。

树莓派安全篇

很少看到有介绍树莓派安全问题的文章,但这个对于我来说确是不得不做的事情,我所在的学校很大方的提供给我们免费的固定外网IP,在这个ipv4地址匮乏的时代,能如此大方的人手一个外网固定ip,真是不容易啊。但随之而来的是很恐怖的安全问题。外网IP真的很危险诶。。曾经看到,如果你的root密码是6位数字,并且打开了ssh server,端口是默认的22
号,在公网ip几分钟内就会变成别人的肉鸡。我们跟我同ip段的有很多还是学校各部门或者各实验室服务器,时不时的就会出现主页被修改,还发生过国家安全部门直接过来查服务器(服务器上挂了危害国家安全的程序)。。。作为树莓派,肯定会长期开机,而且一定会开ssh服务,这么危险的网络,就算密码再安全,直接暴露出来也是非常危险的。所以这里做了一些安全工作,如果你的树莓派挂在自己的路由器内,大可不必这么麻烦,注意不要设太简单的密码应该就可以了。

tmpfs

由于树莓派读写的是tf卡,速度慢不说,反复读写还会对tf卡造成损伤,因此我们使用tmpfs文件系统来挂载一些需要反复读写,但又没太多重要作用的位置。通过使用fstab文件来实现开机自动挂载。我们把/tmp, /var/tmp, /var/run文件夹挂载到tmpfs上,fstab里面添加如下内容:
1
2
3
tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0
tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=2m 0 0
重启后看一下df信息,确认以及挂载成功。

denyhosts

我最开始的策略是使用ssh防扫描软件,denyhosts就是这样一个针对ssh服务器的基于日志的入侵预防安全工具,使用Python编写。其实linux本身就可以记录一些ssh的日志信息,包括登陆者的ip,登陆成功或者失败的信息,denyhosts就是利用linux生成的日志信息,屏蔽一些貌似在试密码的登陆者的IP。缺点就是对ipv6的地址不能很好的起效。
安装很简单,使用apt-get就可以直接安装
1
sudo apt-get install denyhosts -y
安装完成后可以对他进行配置,配置文件是/etc/denyhosts.conf其实我们用他的默认配置也是可以的,里面的配置主要是ssh登陆失败多少次后将这个ip屏蔽,denyhosts有他的黑名单和白名单,分别在/etc/hosts.deny和/etc/hosts.allow,可以将自己的一些设备加到/etc/hosts.allow里面,书写的格式在文件里面有解释,这里就不多说了。
使用denyhosts一段时间,就可以看到hosts.deny里面的记录迅速在增长,我的记录中,有时候一天就会多添加几十条记录。。这就又带来了一个新的问题,树莓派本身CPU资源就很紧张,整天被人这么扫,感觉还是很不爽的。其实还有另一种更简单更有效的方法来避免被人扫,修改ssh端口。ssh端口的记录在/etc/ssh/sshd_config文件中,直接修改就可以了。虽然很简单,但确实很有效,修改端口后,denyhosts的记录就停止增长了,说明那些漫无目的扫描器不会检查其他的端口。但这种方式对付那种就是想搞你这个ip的黑客是无效的,他们会扫描你所有的端口。。但至少这种方法配合denyhosts亲测还是很管用的local。
接下来就是正式的NAS服务器搭建了。

挂载硬盘

为了能使树莓派挂载硬盘,我买了那种sata3转usb的转接盒,同时为了解决树莓派usb供电不足的问题,我又购置了有源usb集线器。。诶,总之硬件确实需要这些东西的辅助才行。都连接好了后,看一下/dev下是不是有sdX设备了,我这里是sda。这里推荐将硬盘重新格式化为ext4格式的文件系统。
格式化硬盘为ext4
1
2
3
4
5
6
# 查看硬盘内核名称,/dev/sda一般是你的硬盘
sudo fdisk -l
# 按照提示对硬盘进行分区
sudo fdisk /dev/sda
# 将硬盘分区格式化为ext4格式,格式化前必须先卸载硬盘,使用umount命令
sudo mkfs.ext4 /dev/sda1
挂载硬盘
ext4格式的硬盘的权限指定很方便,可以直接修改挂载的文件夹就可以了,举个例子
1
2
3
mkdir /home/pi/media
sudo mount /dev/sda1 /home/pi/media
sudo chown pi:pi /home/pi/media
这样下次挂载的时候也是同样的权限设置
开机自启动
开机自启动也是修改/etc/fstab文件,编辑/etc/fstab文件,加入如下内容
1
/dev/sda1 /home/pi/media ext4 defaults 0 0
这里也可以使用硬盘的uuid来进行挂载,万一他不再是sda了也可以同样识别到,查看方法如下
1
2
sudo blkid
/dev/sda1: UUID="d5a3d30a-d2e7-4b12-bb31-b4439c5db200" TYPE="ext4"
这样添加fstab的时候可以这样添加
1
UUID=d5a3d30a-d2e7-4b12-bb31-b4439c5db200 /home/pi/nas-data ext4 defaults 0 2
补充一下fstab文件
这里为了能够每次开机自动挂载,使用了/etc/fstab这个文件,文件的内容示例和说明如下:
1
2
3
4
5
/dev/sda1 /media/disk (format:auto, ntfs-3g, vfat, ext4,...) defaults,noexec,umask=0000 0 0
# sda1是取决于你的实际情况,a表示第一个硬盘,1表示第一个分区。
# /media/disk是挂载的位置
# format 是挂载文件的格式,格式有很多,可以看一下手册。
# 前面四个0就是对所有人,可读可写可执行,后面两个0,第一个代表dump,0是不备份,第二个代表fsck检查的顺序,0表示不检查
fstab这个文件确实功能非常强大,不仅能挂载本地分区,还可以挂载远程的文件系统。详情看我的博客,这里就不再细说了。
其他的文件系统格式
并不推荐其他的文件系统,因为linux需要模拟实现对他们的读取,性能会受到影响,而且可能某些使用上也会受到影响,但为了完整性,这里还是一并说一下如何使用。
  • NTFS格式::默认挂载NTFS格式的硬盘只有只读权限,需要借助其他工具实现。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 安装所需软件包
    sudo apt-get install fuse-utils ntfs-3g
    # 加载内核模块
    modprobe fuse
    # 编辑fstab让硬盘开机自动挂载
    sudo nano /etc/fstab
    # 在最后一行添加如下内容 挂载到/media/disk文件夹
    /dev/sda1 /media/disk ntfs-3g defaults,noexec,umask=0000 0 2
    # 保存重启,即可生效
  • FAT32格式:FAT32格式可以直接挂载。
    1
    2
    3
    4
    sudo nano /etc/fstab
    # 在最后一行添加如下内容
    /dev/sda1 /mnt/myusbdrive auto defaults,noexec,umask=0000 0 0
    # 保存重启,即可生效
  • exFAT格式:exFAT格式需要安装exfat-fuse做驱动,安装后就可以挂载了。
    1
    2
    3
    4
    5
    sudo apt-get install exfat-fuse
    # 编辑fstab让硬盘自动挂载
    sudo nano /etc/fstab
    # 在最后一样添加如下内容
    /dev/sda1 /mnt/usbdisk vfat rw,defaults 0 0

sftp-server

这是最简单的服务器了,其实就是我们的ssh带的功能,在Linux上我们使用的scp命令以及我们在windows下使用的winscp软件都是利用了这个服务器。他是如此简单,以至于你把ssh功能打开后就可以直接使用了。那为什么这里还要提这个简单的功能呢?因为这其实是我用的最多的文件服务器了。这里就来说一下如何使用吧。
在Linux上除了scp命令可以使用sftp服务器外,还有个更强大的命令叫sshfs,这个命令能够将远程的文件夹直接挂载到你本地的文件夹下,非常自然的成为你系统的一部分。你在本地使用完全感觉不出来这是在操作远程文件系统,因为他已经完整的挂载过来了,至于如何完成远程文件系统实际的读写,这都是sshfs做的工作,你根本察觉不出来。
下面就说一下如何使用
在ubuntu上和fedora上的操作其实都是一样的,就是安装命令不同,ubuntu用户自行把dnf命令替换会apt-get命令
1
2
3
4
5
6
# 首先安装sshfs命令
sudo dnf install sshfs
# 新建一个文件夹作为挂载点,~是指的你的home文件夹
mkdir ~/remote
# 基本的挂载,PORT修改成你ssh的端口,rpi修改成你的树莓派的ip地址,/home/pi 是你想挂载过来的远程的文件夹,后面的~/remote是本地的挂载点。
sshfs -P PORT pi@rpi:/home/pi ~/remote
打开看一下刚刚建好的remote文件夹看看树莓派的home是不是挂载过来了,你对这个文件夹的操作都会实时的传回树莓派,传输速度同你的网速。
实际上我们并不直接挂载home回本地,因为没有意义,树莓派本身就是用的一个sd卡,速度慢空间小。我们这里挂载的是你挂载树莓派上的硬盘。如果前面你成功挂载了你的硬盘到你的树莓派,那么把树莓派上的这个挂载点挂回你的本地,这样就可以任意操作了。我的所有的数据和文档全都放在这个硬盘上,本地的硬盘从来不存重要的东西,这样随便安装系统也不怕数据没了,而且像我这种既要用笔记本又要用台式机的人,经常要在多个电脑间上换来换去的。经常出现一个文档我在这个笔记本上写完了,切回台式机还要用u盘再传一份,改几个字,出差了,又要再传一份给笔记本。。费劲不说,万一忘了会出大叉子。通过这种方式,所有的数据只留一份给树莓派,完美的解决了多设备同步的问题,因为数据只有一份。笔记本用个小的ssd也不用担心硬盘不够用了。。说多了,其实用法很多,看你要怎么用了。回到正题。
这么好的东西,用windows的怎么办?其实windows也有sshfs命令,直接去下一个就可以了,下载地址:https://code.google.com/p/win-sshfs/downloads/list 有两个依赖,分别是.NET Framework4 和Dokan Library 自己下载安装吧,安装完了图形界面配置,按照要求填完,就可以挂载了,挂载完成后,会出现在我的电脑里面,多出对应的盘符。接下来就可以任意使用了。

samba服务器

samba服务器是针对windows用户的服务器,但很多linux的文件浏览器也支持,这里也对他进行搭建的过程进行记录。
安装命令如下:
1
sudo apt-get install samba samba-common-bin
安装完成后编辑/etc/samba/smb.conf文件
1
sudo vim /etc/samba/smb.conf
在文件的最后添加如下内容:
1
2
3
4
5
6
7
[NAME] # 这里修改成你想要显示的名字
comment = some comment # 注释,你也可以不加
path = /path/of/folder # 这是你要共享的文件夹
browseable = yes # 允许浏览
writable = yes # 是否可写
create mask = 0664 # 新建文件的权限
directory mask = 0775 # 文件夹的权限
如果你有多个要分享的文件夹,就多写几个这个豆腐块。
添加一下用户,注意这个用户必须是要在你的系统中真实存在的,例如我们pi用户。
1
smbpasswd -a pi
完成后重启samba服务
1
sudo service samba restart
windows用户这时就可以打开我的电脑,映射网络驱动器-> 文件夹输入”\\ip to your rpi\NAME”。中间部分是你的ip,NAME就是前面你在中括号里面填的内容。成功连接后就可以访问了,linux用户自行查找连接方法。

ftp服务器

ftp这种老牌的文件服务器自然也是少不了的,这里使用vsftpd服务器就可以满足我们的基本需要。vsftpd是一个比较轻量级的ftp服务器,一般需求完全可以满足,在linux下很常用。
在树莓派下安装vsftpd可以使用apt-get来进行安装
1
sudo apt-get install vsftpd -y
配置文件是/etc/vsftpd.conf 这个文件的内容很多,一般使用的话可以按照下面的配置做一下
1
2
3
4
5
6
7
8
9
# 一些配置需要去掉配置文件前的 ’#‘ 才能生效
write_enable=YES # 可以上传文件
local_umask=022
anonymous_enable=NO # 不能匿名访问
local_enable=YES # 本地用户可以访问
# local_root选项可能没有在配置文件中显示,
# 他的作用是设置ftp登陆进去看到的目录,根据自己的情况进行设置
local_root=/path/of/ftp/root
退出后重启vsftpd服务,测试一下ftp连接是否成功
1
sudo service vsftpd restart

种子下载功能

一个合格的数据中心也要具备从网上下载数据的能力,由于目前还在学校,享受着免费的不限网速的ipv6,下载能力强悍而且有众多种子站,我使用的是transmission-daemon来替我完成种子下载功能。如果需要迅雷下载功能,需要使用aria2来帮你实现,但这个软件的配置略麻烦,而且我也没用过,就不写了。
安装transmission-daemon
1
sudo apt-get install transmission-daemon
安装完成后第一件事情就是停止transmission-daemon服务,否则你后面做的修改保存不下来的。
1
sudo service transmission-daemon stop
配置transmission-daemon
1
sudo vim /etc/transmission-daemon/settings.json
一般使用,只需要修改一下下面的内容就好了,需要查看完整的参数说明,请参考官网
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 下面这个参数指定下载地址
"download-dir": "/home/pi/media/bt/downloads",
# 下面这个参数指定同时下载的任务数量
"download-queue-size": 2,
# 下面这个参数表示未完成的任务放在另一个地方,我们就不用了。
"incomplete-dir-enabled": false,
# 下面的参数开启远程web管理界面
"rpc-enabled": true,
# 下面这个参数表示web管理界面是否需要密码,我们选是
"rpc-authentication-required": true,
# 下面的参数就是web管理界面的管理信息,大家看着改成自己的内容就好了
"rpc-username": "登录名",
"rpc-password": "明文密码(保存后自动变成密文)",
"rpc-port": 9091,
需要改的就这么多,其他的使用默认的就好了。为了能避免出现读写权限问题,我们直接把你要下载的下载目录改成777权限,如下:
1
sudo chmod 777 -R bt
原文地址是 http://blog.throneclay.com/2015/10/28/rpinas/ 对作者表示感谢
重启服务
1
2
sudo service transmission-daemon reload
sudo service transmission-daemon start
没有错误的话,打开浏览器,在地址栏输入 树莓派的ip:9091 看一下是不是成功启动了?以后直接上传自己的种子文件,他就会自动下载了。

wakeonlan 远程唤醒我的电脑

说一个不是NAS的功能的小工具,wakeonlan是一个perl写的小工具,作用很简单,发送魔术包,唤醒同一网段的主机。这个功能对我来说很方便也很实用。目前绝大部分主机的bios里面都可以设置远程唤醒,其实就是监听有没有给自己发过来的魔术包,魔术包就是magic packet,是包含特定内容的一个socket包,使用的是udp协议。有了这个工具,哪怕在外地想连上自己的主机,通过这个工具就可以直接开机了。需要注意的是使用这个工具最好是将树莓派和主机放到同一个路由器下面。使用方法很简单,先确认自己的主机有远程唤醒功能,并在bios里启动,然后安装
1
sudo apt-get install wakeonlan
安装完成后,在树莓派上继续输入下面的命令,查看一下自己电脑的mac地址是多少
1
arp -a
该命令会把所有同网段的ip都列出来,其mac地址也会列出来,可以看看树莓派能不能到你的电脑,找到自己电脑的ip,记录一下你的mac地址,以后你就直接输入下面的命令启动你的电脑好了。
1
wakeonlan [你的mac地址]
我的NAS的功能就是这么多,未来工作就有三点,一是可以试试组一个软raid,第二个是上webdav服务,最后就是试着搭一个自己的git服务器。

Popular posts from 产品随想的博客

产品随想 | 周刊 第116期:Great things in business are never done by one person.

Cromite   https://github.com/uazo/cromite Cromite a Bromite fork with ad blocking and privacy enhancements; take back your browser! awesome-shizuku   https://github.com/timschneeb/awesome-shizuku Curated list of awesome Android apps making use of Shizuku KernelSU   https://github.com/tiann/KernelSU A Kernel based root solution for Android Love, Hate or Fear It, ​​TikTok Has Changed America   https://www.nytimes.com/interactive/2024/04/18/business/media/tiktok-ban-american-culture.html?unlocked_article_code=1.mE0.DpEZ.VWmNssw5B6_c "My model for business is The Beatles.There were four guys who kept each others, kind of, negative tendencies in check. They balanced each other, and the total was greater than the sum of the parts. And that's how I see business. You know, great things in business are never done by one person. They're done by a team of people. "Our motivation is simple--we want to provide the most advanced and innovative platform to our developers, and we wa...

产品随想 | 读《中国是部金融史》:第一章 此朝无钱胜有钱(周朝)

第一章 此朝无钱胜有钱(周朝) 姬旦选择了当时最有效、最简单的统治方式—一封建:为确保对国家的统治,姬且共封七十一国,其中姬姓五十三国,封国在地方替周王管理属国。 封建封建,封而建之。 对权力没有任何制约的西周,“王德〞是封建统治者最后的底线。这种“王德”对天命的畏惧延续了周王朝近千年的生命,此后,无论春秋五霸如何强盛,都只能挟天子以令诸侯,再强的诸候都必须获得王室认可。这一点,颇类似于西欧或者日本王位干年一系,绝不是“皇帝轮流做,明年到我家”的强盗逻辑。 司马迁之所以大骂周厉王,原因还在于周厉王推行了“专利”制度。其实,西周铭文甚至后世典籍始终都没说清楚究竟周厉王的“专利”是个什么东西,只是说他“专山林川泽之利”。周厉王很可能把诸候的山林川泽收归国有(自己所有),凡是在山上砍柴的、打猎的都要向王室纳税。看起来,周厉王敛财是确定无疑的,所以,司马迁认为此人是一个暴君。不是周厉王贪婪,而是王室实在太穷了。 西周王室失去了财富、失去了王德,也很快会失去江山。 失去“王德”的社会,人们只会臣服于强人,只有利益才是真正的信仰。也就是说, 这个时候的西周几乎是一种丛林社会,只有赤裸裸的暴力才能制约这些诸候了。对诸侯来说,周总王不过就是一个名号,没-起喝过酒、没一起拼过命,凭什么要听你的命令? ──复用下作者的句式:失去“法律”的社会,人们只会沉醉于拜金。 管仲告诉我们,强国、弱国最大的区别是强国的钱都在黎民百姓手里,弱国的钱却在国王的钱箱子里。这一点,颇类似于穷国和富国的区别,穷国只想抢老百姓的钱,富国却在想养如何让老百姓赚钱。 ──思考:我们的钱,在哪里? 周幽王死后,周平王为了躲避犬我,东迁至东都洛邑,中国开始了春秋时代。但无论春秋诸侯多么强盛,都要举起周王室大旗,所以,春秋在中国历史上也被称为“东周” 真正的强国,震慑敌闲的不只是万乘之师,还有无法超越的经济实力。强国经济之强,必然源自园内公平的经济环境,能为国民提供一个自由创造的空间。即使弱国拒绝承认强国的地位,甚至试图与强国平起平坐,也永远无法护绝强国对本土的经济渗透。 ──瞬间想到美国 无论弱国多么不情愿,强国货币都一定会流进他的地盘。在古代,一种曾经广泛流通的货币必然有大量文物存世,春秋货币则主要包括布币、刀币和蚁鼻钱三个体系。在中国史籍中经常提到“春秋五霸”,不过“春秋五霸”有很多种版本。顺着本书的逻辑, 我们...

《Becoming Steve Jobs》Chapter 15 The Whole Widget

What the world did see was an effective and visionary leader at the height of his powers. These were complicated years for Apple, but Steve handled almost every challenge in exactly the manner he wanted. He had fallen into leadership at such a young age, but he was comfortable in that role now, and justifiably sure of his capacity to guide Apple’s tens of thousands of employees to the goals he set for them. During these years, he would ensure the company’s continued success in personal computers by engineering a deft switch to a new kind of microprocessor; ruthlessly and successfully managing some major transitions in his executive team; and optimizing and building upon the efficiency and ambition of the company’s product development “treadmill,” as Tim Cook describes it. This is also when he delivered what is likely to be remembered as the most notable product of his life, the iPhone, and then improved even that by pivoting once again into a strategy he personally had not wanted to pu...

产品随想 | 周刊 第117期:He saw the intersection of art and science and business and built an organization to reflect that.

He disliked biography attempts. “I regard my scientific papers as my essential biography,’’ Land said. “I pour my whole life into the scientific project I’m investigating. I leave behind the things I’ve done in the past to do the work in the present.’’ “The purpose of inventing instant photography was essentially aesthetic,’’ Land said in 1947, announcing the process’s invention. “We live in a world changing so rapidly that what we mean frequently by common sense is doing the thing that would have been right last year.” — Edwin Land, Statement to Polaroid Corporation employees (25 June 1958) The worldview he was describing perfectly echoed Land’s: “Market research is what you do when your product isn’t any good.” And his sense of innovation: “Every significant invention,” Land once said, “must be startling, unexpected, and must come into a world that is not prepared for it. If the world were prepared for it, it would not be much of an invention.” Thirty years later, when a reporter ask...

Hacking Team武器库

之前百度盘上公开了部分Hacking Team工具,自己一直没有看懂,今天在泉哥博客上看到他对于武器库的几篇文章,mark一下

产品随想 | 周刊 第51期:Never let a good crisis go to waste

Products Paperless-ngx   https://github.com/paperless-ngx/paperless-ngx A community-supported supercharged version of paperless: scan, index and archive all your physical documents 自架设服务,文档聚合 Tube Archivist on YouTube   https://github.com/tubearchivist/tubearchivist Your self hosted YouTube media server 自托管YouTube流媒体播放 Emby Server Emby Server is a personal media server with apps on just about every device. 自己掌控流媒体 Pointless   https://github.com/kkoomen/pointless An endless drawing canvas desktop app made with Tauri (Rust) and React 无限画布白板工具,Tauri构建,跨多端 PWA LIST   https://www.pwalist.app/ 一些好玩的PWA应用,有些还不错 Pomofocus 番茄钟 Song Search “Find me a song by lyrics.”   https://songsear.ch/ Nanopi Openwrt   https://github.com/klever1988/nanopi-openwrt Openwrt for Nanopi R1S R2S R4S R5S 香橙派 R1 Plus 固件编译 纯净版与大杂烩 Project ImmortalWrt   https://github.com/immortalwrt/immortalwrt An opensource OpenWrt variant for mainland China users. China用户专用......心情复杂 YAOF   ht...

李录推荐阅读书单

李录推荐阅读书单 李录在《文明、现代化、价值投资和中国》的最后,列出了他推荐阅读的一些书目。这个书目的含金量非常之高,是培养一个多层次有深度思维很好的参考,特整理如下。 一. 科学、哲学、进化、人类文明史、人类历史 1. 《枪炮、病菌与钢铁:人类社会的命运》,贾雷德·戴蒙德 2. 《西方将主宰多久》,伊恩·莫里斯 3. 《文明的度量:社会发展如何决定国家命运》,伊恩·莫里斯 4. 《群的征服》,爱德华·奥斯本·威尔森 5. 《无穷的开始:世界进步的本源》,戴维·多伊奇 6. 《真实世界的脉络:平行宇宙及其寓意》,戴维·多伊奇 7. 《理性乐观派:一部人类经济进步史》,马特·里德利 8. 《科学发现的逻辑》,卡尔·波普尔 9. 《开放社会及其敌人》,卡尔·波普尔 10. 《自私的基因》,理查德·道金斯 11. 《人类简史:从动物到上帝》,尤瓦尔·赫拉利 12. 《文明》,尼尔·弗格森 13. 《当下的启蒙》,史蒂芬·平克 14. 《心智探奇:人类心智的起源与进化》,史蒂芬·平克 15. A history of knowledge, Charles Van Doren 16. 《神的历史》,凯伦·阿姆斯特朗 17. 《为什么佛学是真实的》,罗伯特·赖特 18. 《思考,快与慢》,丹尼尔·卡尼曼 19. Creating the Twentieth Century, Vaclav Smil 20. Transforming the Twentieth Century, Vaclav Smil 二. 中国文明、历史、文化 1. 《先秦诸子系年》,钱穆 2. 《中华文化十二讲》,钱穆 3. 《史记(白话本)》,司马迁 4. 《白话二十五史精选》,李解民等 5. 《四书章句集注》,朱熹 6. Waiting for the Dawn, William Theodore de Bary 7. 《中国的自由传统》,狄百瑞 8. 《万古江河——中国历史文化的转折和开展》,许倬云 9. 《黄宗羲全集》 10. 《余英时文集》 11. 《思想和人物》,林毓生 12. 《曾国藩全集》 13. 《万历十五年》,黄仁宇 14. 《天安门:知识分子与中国革命》,史景迁 15. The Search for Modern China, 史景迁 16. 《中国官僚政治研究》,王亚南 17. 《中...

《深度学习推荐系统》By 王喆

  推荐序言 深度学习/机器学习,爆发于2015年 算法能力+工程能力 1992年,施乐创建了应用协同过滤算法的推荐系统 本书for:推荐、广告、搜索领域的从业者/爱好者 第1章 互联网的增长引擎──推荐系统 不同业务模式的公司定义的具体推荐系统优化目标不同,例如,视频类公司更注重用户观看时长,电商类公司更注重用户的购买转化率(Conversion Rate,CVR ) YouTube推荐系统的主要优化目标就是观看时长,而不是CTR 工程论文:Deep Neural Networks for YouTube Recommenders 大致流程:构建深度学习模型,预测用户观看某候选视频的时长,按照预测时长进行候选视频的排序,形成最终的推荐列表 淘宝首页:千人千面(即使是1%的CTR提高,也会到来数十亿元收入增加) 推荐系统逻辑框架:f(U,I,C), User, Item, Context 推荐系统数据部分:实时数据、准实时数据、离线数据 推荐系统模型部分:召回层、排序层、补充策略与算法层(排序层是工业界与学术界研究的核心) 第2章 前深度学习时代──推荐系统的进化之路 UserCF: 基于用户相似度进行推荐的协同过滤算法 互联网用户数的增长会导致矩阵维护复杂度急剧上升 用户的历史数据可能稀疏(导致UserCF不适用于酒店预订、大件商品购买等低频应用) 适用于发现热点、以及跟踪热点的趋势 ItemCF:基于物品相似度进行推荐的协同过滤算法 更适用于兴趣变化较为稳定的应用 协同过滤的天然缺陷:推荐结果的头部效应较明显 其它模型:矩阵分解、逻辑回归、FM、FFM、GBDT+LR、LS-PLM (细节已经要看不懂了) 第3章 浪潮之巅──深度学习在推荐系统中的应用 Google Play的推荐团队,基于对业务场景的深刻理解,提出了Wide&Deep模型 这张属于看不懂那种类型 第4章 Embedding技术在推荐系统中的应用 Not Interested 第5章 多角度审视推荐系统 从7个不同的角度切入推荐系统 推荐系统如何选取和处理特征 召回层的主要策略有哪些? 实时性的重要性体现在哪里?有哪些提高实时性的方法? 如何根据具体场景构建推荐模型的优化目标 如何基于用户动机改进模型结构 冷启动问题的解决方法有哪些 什么是探索与利用问题?有哪些主流的解决方法 第...

Bilibili Q2 2023 Earnings Call Transcript

Moving on to our community growth. Our DAUs increased by 15% year-over-year to 96.5 million in the second quarter, driving our DAU to MAU ratio up to 29.8%. In the second half of this year, we plan to shift our video watching metric from video views to video time spent, which will help our users discover more high-quality content on Bilibili. In addition, we are exploring new live broadcasting products to create more paying channels for our users, including live celebration events. We expect our ongoing integration activities to support our revenue growth in the second half of 2023. Our top five advertising verticals in the second quarter were games, e-commerce, digital products and home appliances, skincare and cosmetics, and food and beverage. 五大Top广告垂类 In the meantime, we have seven new titles that we plan to release in domestic and overseas markets in the second half of the year, including the highly anticipated game Pretty Derby 期待7款游戏能红火一波 We cut sales and marketing expenses by 2...

产品随想 | 陪读《芯片战争》:一、二章

作者其它书也值得读读 已出版《食用油营销第1书》《金龙鱼背后的粮油帝国》《鲁花:一粒花生撬动的粮油帝国》《手机战争》等财经书籍。 第一章 从晶体管到芯片 肖克利要创业的消息,就像17世纪的牛顿宣布要建立工场一样引起了轰动。那时候,美国还在草创时期的半导体产业主要集中在东部的波士顿和纽约长岛地区,许多科学家和工程师精英都慕肖克利之名前往美国西海岸,不远千里地聚集在肖克利旗下。可以这么说,肖克利给硅谷带来了最初的火种。 ——我也認可這個說法,不是斯坦福或其他校園,純粹是人才的原因 芯片发明后的六年间,政府对芯片项目的资助高达3200万美元,其中70%来自空军。同期美国半导体产业的研发经费有约85%的比例来自政府,政府的支持成就了美国在半导体领域的技术优势。“华盛顿通过支付技术研发费用和保证最终产品的市场份额,将原子弹最终制造成功的间隔缩短至六年,晶体管缩短至五年,集成电路缩短至三年。”不过,这些半导体企业实力壮大以后,往往不愿再参与美国政府出资的研发项目,因为那意味着专利权归政府所有,而且还得受保密条款的约束。 ——這纔是更合理的產業支持政策 诺伊斯采用激进的价格政策,将主要芯片产品的价格一举降到1美元,不仅是市场上的主流芯片价格的零头,还低于当时芯片的成本。这不是传统意义上的亏本倾销,而是第一个以反摩尔定律为定价依据的案例。反摩尔定律认为,同样的芯片在18个月后价格就会跌一半,所以按照几年后的价格为当前的芯片定价是有一定合理性的。市场被迅速打开,芯片很快在民用市场得到越来越广泛的应用,仙童的营收和利润都迅速上升,还带动了其母公司的股价上涨。摩尔后来评论:“诺伊斯以低价刺激需求,继而扩大产能、降低成本的策略,对于芯片产业的发展而言,其重要性堪比芯片的发明。” ——看到這裏的時候,真是非常震撼,好厲害的定價策略 东通工用磷渗透法研发出了高频的晶体管,于1957年做出世界上第一款袖珍收音机,并在这款产品上启用了索尼商标。盛田昭夫到美国去推销袖珍收音机的时候,德州仪器刚刚轻率地放弃了这个市场。美国人对盛田昭夫说:你们为什么要制造这种小收音机?美国人都想要大收音机。盛田昭夫回答:单单纽约就有20多家广播公司,同时就有20多套节目在播放,每人使用一台小收音机收听自己喜欢的节目,岂不更好?索尼用“一人一台”的宣传成功打破了美国人全家共用一台大型收音机的观念,成为全世界最畅销的收音机...