最新 | 最热门 | 最高评价

+0  找回密码的功能设计

Tag: Developer
阮一峰 发于 2019年02月07日 15:14 | 点击: 2897 | 展开摘要
所有需要登录的网站,都会提供"找回密码"的功能,防止用户忘记密码。

正确设计这个功能,保证安全可靠,并不简单。下面就是安全专家 Troy Hunt 给出的设计指南。

一、如何保存密码

一个网站要想保证密码安全,第一步就是以正确的方法保存密码。一般说来,密码有三种保存方式。

(1)明文保存

"明文保存"就是用户的密码原文不动地写入数据库。这种方式最不安全,极易泄漏,应该严格禁用。

(2)加密保存

"加密保存"就是使用密钥,将密码加密后,以密文保存进数据库。这种方式

查看全文: http://www.udpwork.com/item/17378.html

+0  Some tips about Python, Pandas, and Tensorflow

Tag: develope | pandas | tensorflow
Robin Dong 发于 2019年02月06日 10:47 | 点击: 2616 | 展开摘要
There are some useful tips for using Keras and Tensorflow to build models.

1. Using applications.inception_v3.InceptionV3(include_top = False, weights = ‘Imagenet’) to get pretrained parameters for InceptionV3 model, the consol

查看全文: http://www.udpwork.com/item/17377.html

+0  数据库表连接的简单解释

Tag: Developer
阮一峰 发于 2019年01月15日 21:03 | 点击: 785 | 展开摘要
关系型数据库最难的地方,就是建模(model)。

错综复杂的数据,需要建立模型,才能储存在数据库。所谓"模型"就是两样东西:实体(entity)+ 关系(relationship)。

实体指的是那些实际的对象,带有自己的属性,可以理解成一组相关属性的容器。关系就是实体之间的联系,通常可以分成"一对一"、"一对多"和"多对多"等类型。

在关系型数据库里面,每个实体有自己的一张表(table),所有属性都是这张表的字段(field),表与表之间根据关联字段"连接"(joi

查看全文: http://www.udpwork.com/item/17287.html

+0  git bisect 命令教程

Tag: Developer
阮一峰 发于 2018年12月24日 13:18 | 点击: 748 | 展开摘要
git bisect是一个很有用的命令,用来查找哪一次代码提交引入了错误。

它的原理很简单,就是将代码提交的历史,按照两分法不断缩小定位。所谓"两分法",就是将代码历史一分为二,确定问题出在前半部分,还是后半部分,不断执行这个过程,直到范围缩小到某一次代码提交。

本文通过一个实例,解释如何使用这个命令。下面是一个代码库,请将它克隆到本地。

$ git clone git@github.com:bradleyboy/bisectercise.git
$ cd bisect

查看全文: http://www.udpwork.com/item/17247.html

+0  Write text to file with disabling buffer in Python3

Tag: develope | python
Robin Dong 发于 2018年12月13日 14:27 | 点击: 882 | 展开摘要
In Python2 era, we could use these code to write the file without buffer:

file = open('my.txt', 'w', 0)
file.write('hello')
But in Python3 we can only write binary file by disabling buffer:

file = open('my.txt', 'wb', buffering = 0)
file.

查看全文: http://www.udpwork.com/item/17239.html

+0  异步 API 的设计

Tag: Developer
阮一峰 发于 2018年12月12日 08:31 | 点击: 949 | 展开摘要
网站的前后端通信,往往会有异步请求,这时应该怎么设计 API?

我最近读到一篇文章,作者介绍了他的做法,设计得很精细,我觉得值得借鉴,可以当作异步 API 的标准设计。

一、同步 API

为了便于比较,先看看同步 API 的设计。下面是一个很简单的例子。

客户端发出一个请求,要求创建资源。

POST https://api.service.io/stars

name='Death Star'

服务器回应 201。

HTTP/1.1 201 Created
L

查看全文: http://www.udpwork.com/item/17238.html

+0  Some tips about python this week

Tag: develope | python
Robin Dong 发于 2018年11月29日 14:26 | 点击: 808 | 展开摘要
List of lists in python

Created a list of lists by using multiply symbol:

>>> a = [[]] * 2
>>> a
[[], []]
>>> a[0].append('hello')
>>> a
[['hello'], ['hello']]
It’s weird that adding one item to f

查看全文: http://www.udpwork.com/item/17219.html

+0  awk 入门教程

Tag: Developer
阮一峰 发于 2018年11月07日 21:30 | 点击: 749 | 展开摘要
awk是处理文本文件的一个应用程序,几乎所有 Linux 系统都自带这个程序。

它依次处理文件的每一行,并读取里面的每一个字段。对于日志、CSV 那样的每行格式相同的文本文件,awk可能是最方便的工具。

awk其实不仅仅是工具软件,还是一种编程语言。不过,本文只介绍它的命令行用法,对于大多数场合,应该足够用了。

一、基本用法

awk的基本用法就是下面的形式。

# 格式
$ awk 动作 文件名

# 示例
$ awk '{print $0}' demo.txt



查看全文: http://www.udpwork.com/item/17190.html

+0  Page Lifecycle API 教程

Tag: Developer
阮一峰 发于 2018年11月05日 17:13 | 点击: 817 | 展开摘要
两周前,我介绍了 Page Visibility API。有了它,就可以监听各种情况的网页卸载。

但是,它没有解决一个问题。Android、iOS 和最新的 Windows 系统可以随时自主地停止后台进程,及时释放系统资源。也就是说,网页可能随时被系统丢弃掉。Page Visibility API 只在网页对用户不可见时触发,至于网页会不会被系统丢弃掉,它就无能为力了。

为了解决这个问题,W3C 新制定了一个 Page Lifecycle API,统一了网页从诞生到卸载的

查看全文: http://www.udpwork.com/item/17186.html

+0  Page Visibility API 教程

Tag: Developer
阮一峰 发于 2018年10月25日 08:33 | 点击: 853 | 展开摘要
一、简介

有时候,开发者需要知道,用户正在离开页面。常用的方法是监听下面三个事件。

pagehide

beforeunload

unload

但是,这些事件在手机上可能不会触发,页面就直接关闭了。因为手机系统可以将一个进程直接转入后台,然后杀死。

用户点击了一条系统通知,切换到另一个 App。

用户进入任务切换窗口,切换到另一个 App。

用户点击了 Home 按钮,切换回主屏幕。

操作系统自动切换到另一个 App(比如,收到一个电话)。

上面这些情况,都

查看全文: http://www.udpwork.com/item/17165.html

+0  How could it possible to assign an integer to string?

Tag: develope | c++
Robin Dong 发于 2018年10月22日 11:12 | 点击: 837 | 展开摘要
The snippet below could be compiled and run:

#include <map>
#include <string>
#include <iostream>

using namespace std;

int main(void) {
std::map<std::string, std::string> hmap;
hmap["a"] = "appl

查看全文: http://www.udpwork.com/item/17161.html

+0  Move semantics in C++11

Tag: develope | c++11
Robin Dong 发于 2018年10月19日 15:18 | 点击: 1173 | 展开摘要
After studying an example for Move Semantics of C++11, I write a more complete code snippet:

#include <iostream>

using namespace std;

class Intvec {
public:
explicit Intvec(size_t num = 0)
: m_size(num), m_data(new int[

查看全文: http://www.udpwork.com/item/17157.html
|<<<1234567>>>| 一共8页, 89条记录