蘭陵N梓記

一指流沙,程序年华


  • 首页

  • 归档

  • 关于

  • 搜索
close

Rust支持既存类型的理解

时间: 2018-06-02   |   分类: 技术     |   阅读: 1565 字 ~4分钟

最近利用周末时间来学习Rust编程,发现新发布的1.26版本,带来了impl Trait,一时对它的写法难以理解,今天又找点资料再温习一下。

impl Trait is now stable allowing you to have abstract types in returns or in function parameters. e.g. fn foo() -> impl Iterator<Item=u8> or fn open(path: impl AsRef).

既存类型

impl Trait是对既存类型(Existential types)的支持,那什么是既存类型?

阅读全文 »

从Archlinux到Manjaro+i3 WM

时间: 2018-04-15   |   分类: 笔记     |   阅读: 1048 字 ~3分钟

这个周未又在家折腾我的Archlinux,把Archlinux换成了Manjaro,窗口管理采用i3-wm,先上图:

阅读全文 »

响应式编程

时间: 2017-10-01   |   分类: 技术   笔记     |   阅读: 2896 字 ~6分钟

RxJava

最早接触响应式编程,是分析Netflix的架构时,发现Netflix系统中大量使用了RxJava(Reactive Extension for Java)。由于Netflix中服务的高并发请求,需要一个高效的异步编程框架,于是他们参考了微软的Rx.Net的实现原理,在JVM上实现了响应式编程(Reactive Programming)的一种方式。同类的库还有Project Reactor, Akka和Agera等等。

传统编程模式下,我们通常是同步实现。同步是最能简单理解的,调用一个函数或方法,等待响应返回。但对于要求高并发的服务端的软件开发,同步实现带来的开销也是巨大的。像Java中,并没有语言层面实现异步,如果没有借助一些框架,1K的并发请求,可能使用1K的线程来处理;如果采用一些异步框架来实现异步,就会像早期的JavaScript,通常是CallBack,Future模式,代码逻辑变得离散而复杂,造成所谓的Callback Hell。JavaScript在ES6引入Promise机制,在ES7引入async关键字,就是想语言原生层面来解决Callback Hell。而Go语言则更进一步,在内置Runtime中,通过Goroutine调度实现IO调用等异步机制,让上层使用感不到异步调用的存在。

阅读全文 »

软件的困境

时间: 2017-09-25   |   分类: 感想   技术     |   阅读: 1745 字 ~4分钟

最近我司的软件产品线面临其史上最大的因境,今天晚上坐班车时,与一位曾经共过事的同事,聊起现在的软件,感慨颇多。大家都认为我们镨过太多的机会点,现在面对互联网软件的直面冲击,以及运营商本身经营上的乏力,运营商这个领域的软件已经无力回天了。另外之前与其它的同事也聊过,我司本质是一家硬件公司,没有做软件的基因。凭着做硬件的套路,做了这么多年的软件产品,也实属于不容易了。做软件产品与做软件服务是完全不同的套路,软件产品是需要卖给不同的客户,交付形态存在多样化,定制不可避免。而卖服务给不同的客户,客户关注是的服务体验,并不太关心软件的本身,只要软件能搞定客户的问题就行,就不会像卖产品那样面临不同的交付形态问题。而目前我们最大的因境就是软件产品不具有可复制性,不能像硬件那样形成规模效应。

阅读全文 »

开源DNS Server

时间: 2017-09-10   |   分类: 技术   笔记     |   阅读: 3023 字 ~7分钟

DNS是互联网的基础设施,开源的DNS也有不少,下面列出主要的几种供参考:

Bind9

ISC(Internet System Consortium)的Bind一直以来基本上都是DNS的工业标准,Bind应该是目前世界上使用最为广泛的DNS服务器了。Bind起源于1980年的Berkeley大学,比起我的年龄还大,Bind的名称也是源自Berkeley Internet Name Domain。不过Bind也是一直漏洞不断,Bind9是ISC开发人员对Bind重写,目前常见的Linux发行版本中,会自带Bind9的安装包。

Bind9可以作为权威与递归DNS。主要特性如下:

作为权威DNS时:

阅读全文 »

[转]DNS扫盲系列

时间: 2017-09-03   |   分类: 技术   笔记     |   阅读: 8618 字 ~18分钟

致谢:转自 http://bbs.chinaunix.net/thread-1573358-1-1.html ,由 llzqq 发表。

有关公网DNS

公网DNS服务器是直接服务于广大上网用户的,负责域名(域名记录)到IP地址之间的翻译工作。公网DNS通常是各个网络运营商按照自己的网络分布规划DNS的分布,一般做法是按行政区域放置,如按省份放置。每个省份内也有细分在各地区放置的情况。

近几年来细心的网友会发现上网时如果打错了URL地址(或干脆莫名其妙)会访问到114网站或百度等网站。今天我画了一个简单的图表简要说明一下原因。

阅读全文 »

4A技术概览

时间: 2017-07-30   |   分类: 技术   笔记     |   阅读: 2995 字 ~6分钟

什么是4A

4A是指:账号Account、认证Authentication、授权Authorization、审计Audit,中文名称为统一安全管理平台解决方案。即将身份认证、授权、审计和账号(即不可否认性及数据完整性)定义为网络安全的四大组成部分,从而确立了身份认证在整个网络安全系统中的地位与作用。(来源百度百科)

账号Account

为用户提供统一集中的帐号管理,包括:用户身份信息的集中存储与统一管理。参考AWS等系统,涉及到概念包括:

  • 主账号:一般指管理资源的唯一身份标识,他为资源付费。也是自然人在4A中的唯一身份标识,一个用户只会有一个主账号,唯一标识了他的身份。
  • 从账号:一般指资源访问的账号,如虚拟机的访问用户,数据库的访问用户等。
  • 用户:实现操作资源的人员,对应物理存在的人,它由账号分配。
  • 群组:一般对应企业的组织,把用户归属到一个群组里,用户可以自动获得这个群组所具有的权限。对于大型的企业,组织可能分为人员组织与业务组织。对于用户来说,群组也是为提供分级管理能力。
阅读全文 »

云设计模式

时间: 2017-07-15   |   分类: 技术   笔记     |   阅读: 2114 字 ~5分钟

在云环境下,如何构建出可靠,弹性,安全的应用?有哪些挑战?面对这些挑战如何解决,微软Azure总结一系列的设计模式。本文是翻译Azure架构中心在线资料中的云设计模式,仅个人的笔记,借翻译学习一下,英文好的可以直接阅读原文。

挑战

可用性

可用性是指系统功能可用的时间占整体的比例,通常以正常运行时间比来衡量,它会受到系统错误、基础设施问题、恶意攻击和系统负载的影响。云应用典型为用户提供提供服务级协议(SLA),因此必须设计应用以最大限度地可用性。

阅读全文 »
6 7 8 9 10 11 12 13 14
兰陵子

兰陵子

Programmer & Architect

164 日志
4 分类
57 标签
RSS 订阅
GitHub 知乎
© 2009 - 2022 蘭陵N梓記
Powered by - Hugo v0.101.0
Theme by - NexT
0%